提问人:xxxyauxxx 提问时间:11/16/2023 最后编辑:xxxyauxxx 更新时间:11/17/2023 访问量:64
vb.net for in 循环中出现错误。无法声明
vb.net There ia an error in for in loop. Can't declare it
问:
我不知道这是怎么回事,谁能帮忙?
“结核病没有宣布。由于其保护级别,它可能无法访问” “CB没有宣布。由于其保护级别,它可能无法访问”
Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
set_state()
set_field()
End Sub
Private Sub set_state()
Dim textboxes As TextBox() = {txtEventID, txtLocation}
Dim comboboxes As ComboBox() = {cboStatusFrom, cboStatusTo, cboPtype, cboItemCode, cboDateFrom, cboDateTo}
For Each tb In textboxes
tb.Text = String.Empty
Next
For Each cb In comboboxes
cb.Items.Clear()
Next
End Sub
我是初学者,我不知道有什么问题。
答:
0赞
Jon Roberts
11/17/2023
#1
您需要检查每个文本框(txtEventID 和 txtLocation)和所有组合框(cboStatusFrom、cboStatusTo、cboPtype、cboItemCode、cboDateFrom 和 cboDateTo)是否存在,并且可从代码中访问。
错误是 tb 和 cb 依次设置为这些变量中的每一个,并且其中一个或多个要么“未声明,要么由于其保护级别而无法访问
也许最初用这个替换你的代码:
Dim textboxes As TextBox() = {New TextBox()}
Dim comboboxes As ComboBox() = {New ComboBox()}
For Each tb In textboxes
tb.Text = String.Empty
Next
For Each cb In comboboxes
cb.Items.Clear()
Next
这应该运行(当然,这是没有用的)。因此,首先将新的 TextBox() 替换为 txtEventID,然后重试。如果可行,请添加 txtLocation。
其中一个应该会导致您的错误,该错误将显示您需要修复的内容(确保文本框不是“无”,并且是可访问的。如果在设计器中创建控件,请确保将“GenerateMember”设置为 true)
对组合框执行相同的操作。
评论
Option Infer On
Option Infer On
On
For Each
For Each tb As TextBox In textboxes
Dim tb As TextBox
Option Infer
On
On
Off
Off
Option Strict On
Off
On