分析整数时,输入字符串的格式不正确

本文关键字:字符串 格式 不正确 输入 整数 | 更新日期: 2023-09-27 18:21:10

我在表单中添加了一个文本框,并试图从中获取文本,但它出现了一个异常,显示

"输入字符串的格式不正确。"

这是我的代码:

deleteQuestion = Convert.ToInt32(textBox6.Text);
addQuestion = Convert.ToInt32(textBox7.Text);
listOfQuestions.RemoveAt(deleteQuestion - 1);
foreach (RichTextBox box in boxForQuestions)
{
       if (Convert.ToInt32(box.Tag) == deleteQuestion - 1)
       {
              boxForQuestions.Remove(box);
       }
}

在代码的第二部分中,我的意图是删除动态添加的富文本框。

分析整数时,输入字符串的格式不正确

如果您无法控制用户在文本框中键入的内容,请使用Int32.TryParse

int deleteQuestion;
if(!Int32.TryParse(textBox6.Text, out deleteQuestion))
{
    MessageBox.Show("Not a valid number to delete a question!");
    return;
}
int addQuestion;
if(!Int32.TryParse(textBox7.Text, out addQuestion))
{
    MessageBox.Show("Not a valid number to add a question!");
    return;
}

当然,循环中使用的Tag属性也应该考虑同样的情况,但这是由您的代码设置的,所以我认为将其视为有效的整数是安全的

代码中的另一个问题是foreach循环中的remove。这是不可能的,你不能在迭代时更改集合。如果你真的需要从集合中删除元素,你应该考虑使用normal for。。。从最后一个元素到第一个元素的循环