我使用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"; 
     } 
    } 
} 
+0

你会得到什么错误? –

+0

它不再显示错误,但它什么都不显示。 –

+0

那么'lblDistrict.Text'的价值是什么?你做了什么诊断?你有没有在调试器中完成这一步?处理程序是否被调用?请提供[mcve]。 –

这是关注的问题。当你按下键时,哪个控件是关注的?这是你写过KeyPress事件的那个吗?

因此,您必须确保按下该按钮时该特定控件是否具有焦点,或者将其添加到所有控件。

+0

Enter = 13我在youtube上看到,当e.KeyChar ==(char)13输入时 –

+0

是_Enter_的KeyCode是13,问题在于你已经写了_KeyPress_事件的控件, _Enter_键以触发事件。另外请注意,'Label'控件的焦点不会触发(如果控件是标签) –

+0

它完成但格式异常是在这次处理的。 –

我不知道你得到了什么样的异常,但是你必须使用Int.TryParse而不是int.parse。 检查此链接http://dailydotnettips.com/2016/01/16/back-to-basic-difference-between-int-parse-and-int-tryparse/

感谢

+0

我会试试这个。 –

+0

好的。希望对你有所帮助 –

首先,请在您按顺序捕获异常程序try-catch块

如果在文本框中输入字符串包含ONLY号码(例“12er”)其他任何东西,它会抛出异常。尝试Int.TryParse如果是这种情况