该程序应该从textbox1.Text
获取一个正数并将其发送到构造函数HR
表单以将其用作数组大小(使用try catch处理错误)但是当我运行程序时它给出错误。
//first form(info)
HR frm = new HR(textBox1.Text);
frm.show();
this.close();
//2nd form(HR)
static int size = 0;
public HR(string emplyee_num)
{
InitializeComponent();
size = Convert.ToInt16(emplyee_num);//Error appear her instead
}
但是,我尝试发送字符串然后将其转换为HR格式而不是发送它,如图所示,它在转换行中给出了错误。
如何修复该错误以及抛出该错误的原因是什么?
答案 0 :(得分:1)
抛出FormatException
,因为输入控件中的文本不是有效数字。
最好先尝试解析输入,如果输入有效则只创建表单:
Int16 size = 0;
try
{
size = Convert.ToInt16(textBox1.Text));
}
catch(FormatException)
{
// Handle exception
}
if(size > 0)
{
HR frm = new HR(size);
frm.show();
this.close();
}
else
{
// Handle error
}
请记住更新HR
构造函数定义:
public HR(Int16 emplyee_num)
{
InitializeComponent();
size = emplyee_num;
}