2

textboxesボタンをクリックするたびに実行時に作成されるものを作成することができました。クリックするとテキストtextboxesが消えてほしい。イベントを作成する方法は知っていますが、動的に作成されたテキストボックスについては知りません。

これを新しいテキストボックスにどのように接続しますか?

private void buttonClear_Text(object sender, EventArgs e)
{
    myText.Text = "";
}
4

6 に答える 6

7

これは、新しく作成されたすべてのテキストボックスにイベントハンドラーを割り当てる方法です。

myTextbox.Click  += new System.EventHandler(buttonClear_Text);
于 2013-03-01T14:58:24.097 に答える
5

ここでの送信者パラメーターは、正しいコントロールタイプにキャストし、テキストを通常どおりに設定する必要がある場合でも、送信したテキストボックスである必要があります。

if (sender is TextBox) {
     ((TextBox)sender).Text = "";
}

イベントをテキストボックスに登録するには

myText.Click  += new System.EventHandler(buttonClear_Text);
于 2013-03-01T14:55:33.337 に答える
2

あなたの質問はあまり明確ではありませんが、senderパラメータを使用する必要があると思います。

private void buttonClear_Text(object sender, EventArgs e)
{
    TextBox textBox = (TextBox) sender;
    textBox.Text = "";
}

(ここではメソッドの名前は特に明確ではありませんが、質問も明確ではないため、より良いものを提案することはできませんでした...)

于 2013-03-01T14:55:21.023 に答える
1

textBoxObjを作成するとき:

RoutedEventHandler reh = new RoutedEventHandler(buttonClear_Text);
textBoxObj.Click += reh;

リスナーを次のように変更する必要があると思います(100%確実ではありません)

private void buttonClear_Text(object sender, RoutedEventArgs e)
{
  ...
}
于 2013-03-01T14:58:56.673 に答える
1

OPは作成されたものからすべてのテキストをクリアしたいと思いますtextBoxes

private void buttonClear_Text(object sender, EventArgs e)
{
  ClearSpace(this);
}

public static void ClearSpace(Control control)
{
    foreach (var c in control.Controls.OfType<TextBox>())
    {
        (c).Clear();
        if (c.HasChildren)
            ClearSpace(c);
    }
}
于 2013-03-01T14:59:48.213 に答える
1

これは仕事をする必要があります:

    private void button2_Click(object sender, EventArgs e)
    {
        Button btn = new Button();
        this.Controls.Add(btn);

        // adtionally set the button location & position

        //register the click handler
        btn.Click += OnClickOfDynamicButton;
    }

    private void OnClickOfDynamicButton(object sender, EventArgs eventArgs)
    {
        //since you dont not need to know which of the created button is click, you just need the text to be ""
        ((Button) sender).Text = string.Empty;
    }
于 2013-03-01T15:06:10.977 に答える