2012-01-26 11 views
1

私は最近、Visual Studioデザイナー(私はそれが呼び出されていると思います)が自分のメソッドハンドルの一部を削除していることに気付きました。デザイナーがこれをやめるのを止める方法はありますか?デザイナーがdesigner.csのハンドルを削除しているようです

私が言っていることの一例は です。MainForm_Closingと呼ばれるMainFormが閉じるときの方法があります。「変更を保存しますか?」プロンプト。私のMain.designed.csには、私のMainFormオブジェクトに関連するセクションの中に、

という部分が埋め込まれています。

私のメインフォーム(コントロールをドラッグしてラベル名を編集する、画像プロパティを変更するなど)を視覚的に変更すると、デザイナーを作成する部分が私のカスタムを消去するようですコード。

私はデザイナーがコンパイル時にdesigner.csを作成するように呼び出されているので(つまり、簡単にILにコンパイルできるように)、私のカスタムハンドルはもちろん削除されます。

私は自分のカスタムハンドルを生成していますが、IntelliSenseの助けを借りて作成されています。たとえば、次のように入力します。

とIntelliSenseが正しいハンドルを示し、「挿入するTABを押します」と入力します。

これを理解して(そしてVisual Studioのハンドルを削除するのを止める)助けていただければ幸いです。

+0

あなたはdesigner.csするためのコードを追加していますか? –

+0

EventHandlerをプロパティペインまたは* .designer.csファイルに直接追加しましたか?同様の質問がうまく答えました。 http://stackoverflow.com/questions/3786512/changing-autogenerated-code-in-a-c-sharp-windows-forms-application-project – Lloyd

+0

FomrClosingやTreeView.MouseClickなどのメソッドのハンドルだけです。私はこのコードを他の場所に追加すべきだと思いますか? –

答えて

7

.Designer.csファイルに記載されているように、Windows Form Designer generated code regionのコードは、フォームが変更されるたびにVisual Studioによって自動生成され上書きされるため、変更しないでください。 [プロパティ]ダイアログを使用し、あなたのコントロールのイベントにハンドラを追加するには

/// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor. 
    /// </summary> 

enter image description here

2

designer.csを変更しないでください。ファイルの先頭には、ツールによって生成されたコメントも追加されます。デザイナーを変更するたびにdesigner.csが再生成されるので、そこにカスタムコードを入れないでください。

カスタムコードは、MainForm.csまたは一部の部分クラスファイルにある必要があります。次回デザイナーを開いたときにコードが失われるため、designer.csファイルを変更しないでください。

関連する問題