VB.NET中未将引用设置为对象实例,如何处理?

2026-05-06 12:361阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计292个文字,预计阅读时间需要2分钟。

VB.NET中未将引用设置为对象实例,如何处理?

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) ' Button click event handler code here End SubEnd Class

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)

VB.NET中未将引用设置为对象实例,如何处理?

本文共计292个文字,预计阅读时间需要2分钟。

VB.NET中未将引用设置为对象实例,如何处理?

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) ' Button click event handler code here End SubEnd Class

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)

VB.NET中未将引用设置为对象实例,如何处理?