Visual C#デザイナーは初めてなので、これらはデザイナーとの連携方法に関する一般的でかなり基本的な質問です。
たとえば、フォームにラベルを追加し、Visual C#デザイナーでダブルクリックすると(Microsoft Visual C#2008 Express Editionを使用しています)、次のことが起こります。
- デザイナは、 Form1.Designer.cs内にコードを生成し(簡単にするためにデフォルト名を想定)、ラベルを追加します。
次に、ダブルクリックすると、次のコードを使用して、Form1.Designer.cs内のラベルにイベントハンドラーlabel1_Clickが追加されます。
this.label1.Click + = new System.EventHandler(this.label1_Click);
そしてそれはForm1.csにイベントハンドラーメソッドを追加します
private void label1_Click(object sender, EventArgs e)
{
}
ここでラベルを削除すると、Form1.Designer.cs内のコードのみが削除されますが、label1_Clickメソッドは、他に使用されていない場合でもForm1.cs内に残ります。ただし、デザイナ内から[プロパティ]-> [クリックイベントのイベント]内でリセットを使用している場合、Form1.csのlabel1_Clickメソッドも削除されます。
1.)それは少し一貫性のない振る舞いではありませんか?
2.)そのような生成されたイベントハンドラーコードを削除するための推奨される方法は何ですか?
3.)デザイナーを使用するための最良の「メンタルアプローチ」/ベストプラクティスは何ですか?
Form1.csが100%私の責任であり、その一方で、Form1.Designer.csのコードにはまったく触れていないという方法で、精神的な分離によってアプローチします。それは理にかなっていますか?時々デザイナーがsthを削除するので。Form1.csからこれについてはよくわかりません。