3

この未処理の例外エラーが発生しています:

型 'System.Reflection.TargetInvocationException' の未処理の例外が PresentationFramework.dll で発生しました。

追加情報: 呼び出しのターゲットによって例外がスローされました。

これは私のコードです。これは、ユーザーがWPFで作成された +、-、/、x ボタンを押すと、一緒に新しい回答になる 2 つの TextBox の電卓です。

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;
    }
}

なぜ機能しないのかわかりません...

4

2 に答える 2

3

コンストラクターでInitializeComponent()の呼び出しに失敗しました。MainWindow

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いくつかの計算を行いますが、コンストラクターから呼び出します。したがって、このコードを 1 回だけ実行しますが、ユーザーは電卓と対話したいと考えています。

Button.Clickイベントについて何か読むべきだと思います。

于 2012-10-17T10:06:01.960 に答える
0

私は同様の問題を抱えていました。

TextBox の変更されたプロパティから 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;
    } 
于 2014-02-07T19:14:01.627 に答える