【发布时间】:2015-07-27 16:07:52
【问题描述】:
在我的 Visual Studio 表单中,每当我想根据输入的某个 TextBox 更改调用函数时,它都会引发“索引超出数组边界”的异常,即使我的代码没有使用它输入以访问任何数组。
If (TextBox8.Text <> "" And TextBox9.Text <> "") Then
If (ComboBox9.Text = "DC / Single Phase") Then
voltageDrop = CInt(TextBox9.Text) * (2 * CInt(TextBox8.Text) * resLen(ComboBox8.SelectedIndex) / 1000)
Else
voltageDrop = 1.732 * CInt(TextBox9.Text) * (CInt(TextBox8.Text) * resLen(ComboBox8.SelectedIndex) / 1000)
End If
Label54.Text = CStr(voltageDrop)
End If
TextBox8 导致问题。
【问题讨论】:
-
在我看来,ComboBox.SelectedIndex 中的值大于 resLen 数组的长度。
-
@Jeremy Yea 这似乎是显而易见的答案,但我不确定为什么会这样,因为它已在组合框列表中初始化为有效值。
-
TextBox 输入引发异常,而不是 ComboBox 输入,这很奇怪。
-
我假设这段代码在 text_changed 事件中,所以当 textbox8 发生变化时,它会引用组合框 8 的 selectedindex 属性。如果在组合框中没有选择任何内容,则 selectedindex 将为 -1,即出界。同样,只是心理调试。不知道这是否是您的实际问题。