2

このように動的にテキストボックスを作成した場合:

private void Form1_Load(object sender, EventArgs e)
{
   TextBox tb=new TextBox();
   ...
   this.Controls.Add(tb);
}

フォームにボタンがあり、ボタンクリックイベントハンドラー内からテキストボックスのテキストを読みたい場合

private void button1_Click(object sender, EventArgs e)
{
 if(**tb.text**=="something") do something;
}

問題は、ボタンハンドラーにテキストボックスコントロールが見つからないことです。

前もって感謝します

4

4 に答える 4

1

メソッドからtexboxを宣言する必要があり、グローバルである必要があります。次に、テキストボックスオブジェクトに到達できます

TextBox tb;
private void Form1_Load(object sender, EventArgs e)
{
  tb=new TextBox();
  ...
  this.Controls.Add(tb);
}
于 2013-01-07T16:14:09.173 に答える
0

クラスのプライベートメンバーとして宣言TextBoxします。Form

于 2013-01-07T16:14:34.190 に答える
0

これがWindowsフォームであると仮定すると、Controlsのような列挙可能なオブジェクトのコレクションを反復処理できます。TabControlこれが私が取り組んでいるプロジェクトからのいくつかで、適応されていTextBoxます:

foreach (TabPage t in tcTabs.TabPages)
{
    foreach (Control c in t.Controls)
    {
        MessageBox.Show(c.Name);  // Just shows the control's name.

        if (c is TextBox)    // Is this a textbox?
        {
            if (c.Name == "txtOne")  // Does it have a particular name?
            {
                TextBox tb = (TextBox) c;  // Cast the Control as a TextBox

                tb.Text = "test";  // Then you can access the TextBox control's properties
            }
        }
    }
}
于 2013-01-07T16:19:24.197 に答える
0
private TextBox tb = new TextBox();
private void Form1_Load(object sender, EventArgs e)
{
  this.Controls.Add(tb);
}
于 2013-01-07T16:25:36.907 に答える