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

对象引用未设置为对象的实例[VB.NET],vb.net,ctype,Vb.net,Ctype,在c.Enabled=bb中突出显示时出错 (对象引用未设置为对象的实例。) 但是当我使用checkbox1.enabled=b而不是c.enabled=b时,效果很好 因此,正如我所看到的,不是b的错误,对吗 &如何解决此问题?两个可能的原因。for循环将创建以下控件名称: “复选框0” “复选框1” “复选框2” 也许你想要1-3或者0-1 也许您希望递归地查找复选框,然后可以使用find: Public Class Form1 Private Function AllEnable

c.Enabled=b
b中突出显示时出错 (对象引用未设置为对象的实例。)

但是当我使用
checkbox1.enabled=b
而不是
c.enabled=b
时,效果很好

因此,正如我所看到的,不是
b
的错误,对吗


&如何解决此问题?

两个可能的原因。for循环将创建以下控件名称:

  • “复选框0”
  • “复选框1”
  • “复选框2”
  • 也许你想要1-3或者0-1

    也许您希望递归地查找复选框,然后可以使用
    find

     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
    
    但只是

    Call AllEnabled(False)
    
    试试这个:

    AllEnabled(False)
    

    我猜当I=0时,这个问题就解决了?你的表格上有支票箱0吗?我想也没有。查看行
    Dim c As CheckBox=CType(Me.Controls(“CheckBox”&i.ToString),CheckBox)。。。c可能什么都不是只是试着为您调试它,而我在Dim c as复选框行中失败了。。。您也可以发布web表单的asp代码吗?没有复选框0,但我尝试了[for loop]1到2&相同result@markp3rry这是全部代码我是指网页中的代码-控制.Works!的html标记,谢谢,但是你能解释一下
    ctrl(0)
    是什么意思吗?为什么zero@Zaid:我在我的代码片段中对其进行了注释,
    ControlCollection.Find
    返回一个控件数组。当找不到具有给定名称作为键的控件时,它为空(
    Length=0
    )。因为我假设只有一个复选框有这个名字,所以我只选了第一个
    ctrl(0)
    为我提供了控件数组中的第一个控件,因为在.NET.ops中数组是以零为基础的,所以它可以工作,原因是复选框在组框中谢谢^
    AllEnabled(False)
    
    For Each ctl In Me.Controls
      If TypeOf ctl Is CheckBox Then
       ctl.Enabled = b
      End If
    Next