【发布时间】:2013-09-14 23:37:00
【问题描述】:
我正在尝试使我的表单上的一些标签可见,但我不想使用很多 if 语句,但出于某种原因,每当我将 Me.Controls(lbl).Visbel = True 放入 for 或 do 循环时它跳过整个循环。代码完全按照我想要的方式运行,直到我为整个类而不是在 From_load 私有子中调用 Dim lbl = Controls("Label" & counter_3) 时出错。有时我可以让它工作,但只有一个标签可见
Dim chararray() As Char = word_list(random_word).ToCharArray
Dim lbl = "Label" & counter_3
For Each item In chararray
If item = Nothing Then
Else
word_list(counter_2) = item.ToString()
counter_2 += 1
End If
Next
For Each item In chararray
If item = Nothing Then
Else
counter_3 += 1
Me.Controls(lbl).Visible = True
MsgBox(item & " " & counter_3)
End If
Next
我也试过了。在这两个循环中都被完全跳过。我知道这是因为 MsgBox 没有出现。
Dim chararray() As Char = word_list(random_word).ToCharArray
Dim lbl = Controls("Label" & counter_3)
For Each item In chararray
If item = Nothing Then
Else
word_list(counter_2) = item.ToString()
counter_2 += 1
End If
Next
For Each item In chararray
If item = Nothing Then
Else
counter_3 += 1
lbl.Visble = True
MsgBox(item & " " & counter_3)
End If
Next
【问题讨论】:
-
如果您在 WinForm 事件处理程序中抛出异常,它通常会被捕获并静默忽略。尝试在调试器中为所有 C# 异常启用“Break on throw”。
-
你能告诉我更多细节吗,我还是一个初级程序员,我不确定你的意思。
-
另外,也许你应该试试
If item <> Nothing Then... Endif,而不是If item = Nothing Then... ' no action... Else... Endif。我不确定在 VB 中如何处理If子句中的空子句,但一般情况下最好避免使用空条件子句。至少,它们会让你的代码更难阅读。 -
我尝试启用'break on throw' C# 异常,但它仍然跳过代码
标签: vb.net winforms visual-studio