【问题标题】:TextBox: Index was outside the bounds of the Array文本框:索引超出了数组的范围
【发布时间】: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,即出界。同样,只是心理调试。不知道这是否是您的实际问题。

标签: vb.net winforms


【解决方案1】:

我认为在你的 if 条件下你使用了错误的条件。也许你应该使用

textbox8.textchanged method()

或者你可以使用

textbox8.text!=""

【讨论】:

  • 难道'' Visual Basic 语法不等于?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2015-11-06
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多