加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

对象引用未设置为对象的实例[VB.NET]

发布时间:2020-12-17 07:13:36 所属栏目:百科 来源:网络整理
导读:Public Class Form1 Private Function AllEnabled(ByVal b As Boolean) As Boolean For i As Integer = 0 To 2 Dim c As CheckBox = CType(Me.Controls("CheckBox" i.ToString),CheckBox) c.Enabled = b Next End Function Private Sub Button1_Click(sender
Public Class Form1
    Private Function AllEnabled(ByVal b As Boolean) As Boolean
        For i As Integer = 0 To 2
            Dim c As CheckBox = CType(Me.Controls("CheckBox" & i.ToString),CheckBox)
            c.Enabled = b
        Next
    End Function

    Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click
        Call AllEnabled(False)
     End Sub
    End Class

在c.Enabled = b的b中突出显示错误
(你调用的对象是空的.)

但当我使用checkbox1.enabled = b而不是c.enabled = b工作正常.

所以我看错了不是用b吧?

&安培;我怎样才能解决这个问题 ?

解决方法

两个可能的原因.您的for循环创建此控件名称:

>“CheckBox0”
>“CheckBox1”
>“CheckBox2”

也许你想要1-3或0-1代替.

也许你想以递归方式找到你的复选框,然后你可以使用Find:

For i As Integer = 0 To 2
    Dim ctrl = Me.Controls.Find("CheckBox" & i.ToString,True)
    If ctrl.Length <> 0 Then
        ctrl(0).Enabled = b 'Find returns an aray' 
    End If
Next

旁注:2013我将不再使用这种VB6风格:

Call AllEnabled(False)

只是

AllEnabled(False)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读