我收到此未处理的异常错误:
未处理的类型' System.Reflection.TargetInvocationException'发生在PresentationFramework.dll中。
附加信息:调用目标抛出了异常。
这是我的代码。它是两个TextBoxes的计算器,当用户按下WPF中的+, - ,/,x按钮时,它们应该一起成为新的答案。
public partial class MainWindow : Window
{
public string numberInString
{
get { return TextDoos.Text; }
set { TextDoos.Text = value; }
}
public MainWindow()
{
if(TextDoos.Text == "")
{
if(TextDoos2.Text == "")
{
RekenFunctie(TextDoos.Text, TextDoos2.Text);
}
}
}
}
public int RekenFunctie(string numberInString, string numberInString)
{
int antwoord;
int getal = Convert.ToInt32(numberInString);
int getal2 = Convert.ToInt32(numberInString2);
if (Buttons.IsPressed) // This is the + button, there are also -,x,/ buttons.
{
antwoord = getal + getal2;
return antwoord;
}
}
我无法理解为什么它不起作用......
答案 0 :(得分:3)
您错过了MainWindow
构造函数中InitializeComponent()的调用;
public MainWindow()
{
InitializeComponent();
button1.Click += button1_click; //'+' button
}
private void button1_click(object sender, RoutedEventArgs e)
{
int antwoord;
int getal = Convert.ToInt32(TextDoos.Text);
int getal2 = Convert.ToInt32(TextDoos2.Text);
antwoord = getal + getal2;
resultTextBox.Text = antwoord ;
}
无论如何你的代码很奇怪。 RekenFunctie
进行一些计算,但是你可以从构造函数中调用它。因此,您只运行一次此代码,但我认为您的用户希望与您的计算器进行交互。
我认为您应该阅读有关Button.Click事件的内容。
答案 1 :(得分:0)
我遇到了类似的问题。
从TextBox的属性更改evet为TextBlock设置文本时,我遇到了同样的错误。
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
MainTextBlock.Text = ((TextBox)sender).Text;
}
我认为在 MainTextBlock组件初始化之前,它是在运行时调用的。
就我而言,只需检查 null 即可。
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (MainTextBlock != null)
MainTextBlock.Text = ((TextBox)sender).Text;
}