0

私は、他の人が C# でこの種の WinForm コードをどのように扱うのかに興味がありました。フォームがあるとしましょう。それを Form1 と呼びましょう。そして、dgvMain という DataGridView があります。

コードをどこに置きますか:

this.dgvMain.CellEndEdit += new DataGridViewCellEventHandler(dgvMain_CellEndEdit);

Form1 コードまたは Form1 デザイナー コードに入れますか? この「イベント ワイヤリング」コードを Form1_Load メソッドに入れる必要がありますか?

私が尋ねている理由は... DataGridView をダブルクリックすると、IDE がコードを挿入します。

 this.dgvMain.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvMain_CellContentClick);

デザイナーコードに。「イベント配線」コードは 2 か所に配置する必要がありますか?

4

3 に答える 3

2

簡単な答えはイエスです。

より長い答えは、デザイナーによって生成されたコード用に .designer.cs があるということです。そこに独自のコードを配置すると、上書きされて Visual Studio の設計時の処理が台無しになり、保守性が低下する可能性があります。

于 2008-12-01T21:13:21.637 に答える
1

これはデリケートなテーマです。1.1 では、フォーム ファイルにこのための領域がありましたが、多くの場合、コードはデザイナーによって上書きされていました。私はウェブフォームの経験から話していますが、他の場所でも同じであるとしか思えません。

ここで、実際にイベント名をフォーム自体 (フォーム デザイナーのプロパティの 1 つ) に配置すると、コード ジェネレーターは += イベント ハンドラーを部分クラスにプッシュします。私はこのようにそれを嫌いますが、それはそれです。

于 2008-12-01T21:13:21.637 に答える
0

Component に関連するすべてのイベントにDesignerを使用します。

すべてのオブジェクト イベントにコードを使用します。

于 2008-12-01T21:11:51.843 に答える