textboxes
ボタンをクリックするたびに実行時に作成されるものを作成することができました。クリックするとテキストtextboxes
が消えてほしい。イベントを作成する方法は知っていますが、動的に作成されたテキストボックスについては知りません。
これを新しいテキストボックスにどのように接続しますか?
private void buttonClear_Text(object sender, EventArgs e)
{
myText.Text = "";
}
これは、新しく作成されたすべてのテキストボックスにイベントハンドラーを割り当てる方法です。
myTextbox.Click += new System.EventHandler(buttonClear_Text);
ここでの送信者パラメーターは、正しいコントロールタイプにキャストし、テキストを通常どおりに設定する必要がある場合でも、送信したテキストボックスである必要があります。
if (sender is TextBox) {
((TextBox)sender).Text = "";
}
イベントをテキストボックスに登録するには
myText.Click += new System.EventHandler(buttonClear_Text);
あなたの質問はあまり明確ではありませんが、sender
パラメータを使用する必要があると思います。
private void buttonClear_Text(object sender, EventArgs e)
{
TextBox textBox = (TextBox) sender;
textBox.Text = "";
}
(ここではメソッドの名前は特に明確ではありませんが、質問も明確ではないため、より良いものを提案することはできませんでした...)
textBoxObjを作成するとき:
RoutedEventHandler reh = new RoutedEventHandler(buttonClear_Text);
textBoxObj.Click += reh;
リスナーを次のように変更する必要があると思います(100%確実ではありません)
private void buttonClear_Text(object sender, RoutedEventArgs e)
{
...
}
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);
}
}
これは仕事をする必要があります:
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;
}