private void Writein_Click(object sender, EventArgs e) { string txt = ""; if (i< Obedient.GetLength(0)) { Obedient[i, 0] = Convert.ToUInt16(textBox5.Text); Obedient[i, 1] = Convert.ToUInt16(textBox6.Text); Obedient[i, 2] = Convert.ToUInt16(textBox9.Text); Obedient[i, 3] = Convert.ToUInt16(textBox10.Text); Obedient[i, 4] = Convert.ToUInt16(textBox11.Text); Obedient[i, 5] = Convert.ToUInt16(textBox12.Text); Obedient[i, 5] = Convert.ToUInt16(textBox2.Text); txt = (i+1) + "、" + "\t" + Convert.ToString(Obedient[i, 0]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 1]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 2]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 3]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 4]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 5]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 6]).PadLeft(4, '0') +"\r\n"; textBox7.Text += txt; this.textBox7.SelectionStart = this.textBox7.Text.Length; this.textBox7.ScrollToCaret(); i++; } else if(i == Obedient.GetLength(0)) { MessageBox.Show("已到达伺服的最大容量,请停止!"); } } 请告诉我这行 代码哪里错了 为什么会提示超出数值界限
时间: 2024-03-21 10:43:33 浏览: 194
这段代码中有一个错误:
```
Obedient[i, 5] = Convert.ToUInt16(textBox2.Text);
```
应该是:
```
Obedient[i, 6] = Convert.ToUInt16(textBox2.Text);
```
因为在之前已经有 `Obedient[i, 5] = Convert.ToUInt16(textBox12.Text);` 这一行,而数组下标从0开始,所以这里应该是 `Obedient[i, 6]`。
另外,当输入的数值超出 `UInt16` 类型的最大值时,就会出现“超出数值界限”的提示。你可以尝试输入更小的数值,或者使用 `Int32` 类型来代替 `UInt16` 类型。
阅读全文