当前位置 : 主页 > 编程语言 > c语言 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-24
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)
网友评论