0

私のアプリでは、実行時にテキスト ボックスを作成します。コードは次のとおりです。

TextBox bt = new TextBox();
bt.Name = "population_textbox";
bt.Height = 20;
bt.SetValue(Grid.ColumnProperty, 1);
bt.SetValue(Grid.RowProperty, 0);
temp_grid.Children.Add(bt);

したがって、ユーザーが何かを入力して入力した後に、このテキスト ボックスのテキストを取得する方法は次のとおりです。やり方がわからない、やってみる

var tb = (FrameworkElement)this.FindName("population_textbox") as TextBox;
Console.Write(tb.Text);

そして、これはエラーアラートです:

Exception has been thrown by the target of an invocation.
4

3 に答える 3

1

コントロールを宣言してから、コントロールにアクセスできるようにする RegisterName メソッドを呼び出す必要があります。その後、ウィンドウ スコープのどこからでもコントロール名を参照できます。

        TextBox bt = new TextBox();
        bt.Name = "population_textbox";
        bt.Height = 20;
        bt.SetValue(Grid.ColumnProperty, 1);
        bt.SetValue(Grid.RowProperty, 0);
        temp_grid.Children.Add(bt);
        this.RegisterName(bt.Name, bt);


        var tb = this.FindName("population_textbox") as TextBox;
        Console.Write(tb.Text);
于 2013-04-08T11:53:46.037 に答える