这是我为简单的基于事件的加法器编写的代码,这是我不断得到的错误:对象引用未设置为对象的实例。
我是初学者,所以我的错误是什么?我错过了什么?感谢。
private void txtTwo_TextChanged(object sender, TextChangedEventArgs e)
{
int numberOne, numberTwo, number3;
if (int.TryParse(txtOne.Text, out numberOne))
{
// DO NOTHING
}
else
{
MessageBoxButton buttons = MessageBoxButton.OK;
MessageBoxImage icon = MessageBoxImage.Error;
MessageBox.Show("Not An Integer! Only Integers Allowed !", "Error : First Number", buttons, icon);
txtOne.Clear();
}
if (int.TryParse(txtTwo.Text, out numberTwo))
{
//DO NOTHING
}
else
{
MessageBoxButton buttons2 = MessageBoxButton.OK;
MessageBoxImage icon2 = MessageBoxImage.Error;
MessageBox.Show("Not An Integer! Only Integers Allowed !", "Error : Second Number", buttons2, icon2);
txtTwo.Clear();
}
number3 = numberOne + numberTwo;
string num3 = number3.ToString();
txtOut.Text = num3;
}
答案 0 :(得分:3)
在这种情况下,它必须为txtOut
为null,因为num3
已初始化。尝试在设计器中重命名txtOut
控件或删除并重新创建它。
答案 1 :(得分:0)
所以终于搞定了。
好吧,num3不能为null,因为它是一个值类型,这意味着txt3为null。 txtOut为null,因为在XAML中设置txtTwo的Text属性时会引发TextChanged事件,这可能在创建txtOut TextBox之前发生。
所以解决方案是从XAML中删除TextChanged事件并将其放在构造函数中,在InitializeComponent之后:
public MainWindow() {
InitializeComponent();
txtTwo.TextChanged += txtTwo_TextChanged;
}