我使用int解析方式与它在控制台应用程序中的方式相同,但在winforms中不起作用
我需要一些帮助,因为我似乎无法在此处显示文本标签。我正在使用Windows Form C#VS 2015.当我按下输入错误是在barangay = int.Parse(lblDistrict.Text);呃也是,我使用相同的方式console.readline被使用,但它似乎不起作用。有人可以在代码中帮助我吗? :)在此先感谢我使用int解析方式与它在控制台应用程序中的方式相同,但在winforms中不起作用
private void txtBarangay_KeyPress(object sender, KeyPressEventArgs e)
{
int barangay = 0;
barangay = int.Parse(lblDistrict.Text);
if (e.KeyChar == (char)13)
{
if (barangay >= 1 && barangay <= 146)
{
lblDistrict.Text = "District 1";
}
else if (barangay >= 147 && barangay <= 267)
{
lblDistrict.Text = "District 2";
}
}
}
这是关注的问题。当你按下键时,哪个控件是关注的?这是你写过KeyPress
事件的那个吗?
因此,您必须确保按下该按钮时该特定控件是否具有焦点,或者将其添加到所有控件。
Enter = 13我在youtube上看到,当e.KeyChar ==(char)13输入时 –
是_Enter_的KeyCode是13,问题在于你已经写了_KeyPress_事件的控件, _Enter_键以触发事件。另外请注意,'Label'控件的焦点不会触发(如果控件是标签) –
它完成但格式异常是在这次处理的。 –
我不知道你得到了什么样的异常,但是你必须使用Int.TryParse而不是int.parse。 检查此链接http://dailydotnettips.com/2016/01/16/back-to-basic-difference-between-int-parse-and-int-tryparse/
感谢
我会试试这个。 –
好的。希望对你有所帮助 –
首先,请在您按顺序捕获异常程序try-catch块。
如果在文本框中输入字符串包含ONLY号码(例“12er”)其他任何东西,它会抛出异常。尝试Int.TryParse如果是这种情况
你会得到什么错误? –
它不再显示错误,但它什么都不显示。 –
那么'lblDistrict.Text'的价值是什么?你做了什么诊断?你有没有在调试器中完成这一步?处理程序是否被调用?请提供[mcve]。 –