私はプログラミングとコードの初心者です。 私は6つのボタンを持つ非常にシンプルなフォームを持っています。 すべてのボタンをクリックすると、送信者のテキストにマゼンタが表示されます。 しかしButton3はこれ以上の作業を行い、 "Hello"メッセージボックスを開きます。 問題はButton3をクリックすると「hello」という文字列が4回表示されます。どうして? 私はそれがもう一回それを見せると思います。このコードでMessageBoxを何度も実行するのはなぜですか?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Typhok(object sender, EventArgs e)
{
foreach (Control x in this.Controls)
{
if (x.Equals(sender))
x.ForeColor = Color.Magenta;
else
x.ForeColor = Color.Black;
}
b3.Click += new EventHandler(Popup);
}
private void Popup(object sender, EventArgs e)
{
MessageBox.Show("hello!");
}
}
更新:誰も私の元のコードにこの問題があった理由を説明できますか?
「Typhok」と呼ばれるのはいつですか?別のイベントハンドラのように見えます。 'Popup'と呼ばれるものが毎回再登録される。 –