我々は2つのフォーム上のボタン、button1
とbutton2
を有し、これらのイベントは、それらに関連付けられているフォーム上の2つのボタンが等価であると実際にはどうなりますか?
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("button1");
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("button2");
}
我々は別のボタンを使用してbutton1 = button2
を実行した場合、その後、それらの両方がbutton1.Equals(button2)
と同じ構成要素を参照する必要があるとし真の、そして今の例button1.Text
ためbutton2.Text
、
と同じですが、私はbutton1
をクリックした場合、それはまだ「ボタン1」を示し、と私はbutton1.Click += button2_Click
を実行した場合、ボタン1はまだ「Button1を」示すが、button2
ショーs "button2" 2回。
button2
にはイベントが2回実行されるように2つの参照がありますか?実際にフォームに表示されたbutton1
はどうですか?私はその参照を失ったのですか?私は何が起こったのか、そして、等価性が実際にボタンやフォームワークコンポーネントのようなイベントを持つ一般的なコンポーネントで何をするのかを理解していません。
それを試してみて、参照してください。 – MickyD
button1オブジェクトに対して* reference *をなくしました。それはあなたのUI上に表示されたままにして生き続けます。またClickイベントは登録されていないので、参照を失う前にbutton1_Clickを呼び出していることが分かります。このようなコードを書くことはあまり役に立ちません。 –
@HansPassantありがとう、それは今明らかになった。 –