9

.designer.csこのファイルには、Visual Studio のビジュアル フォーム デザイナーによって生成されたデータが含まれていることは承知しています。.designer.csただし、これらのメソッドは低レベルのフォーム処理 (たとえば、ビジュアル ステート マネージャーの一部) を担当するため、これらのメソッドもファイルに入れたいと考えています。

ファイル内のInitializeComponentメソッドに.designer.csは、自動的に生成され、ユーザーが変更してはならないことを示すコメントがあります。この制限はそのメソッドにのみ適用されます.designer.csか、それともユーザーがファイルを編集するべきではありませんか? Dispose()とりわけ、ユーザーが変更したい可能性のあるメソッドが含まれていることに気付きました-最初のオプションを示唆しています。でも確かめたい。

4

5 に答える 5

8

絶対に変更しないでください.designer.cs。限目。あなたの変更は容赦なく上書きされます。

更新:もう少し役立つように、v3 (VS 2008) 以降の C# には部分メソッドが含まれており、多くの設計者がカスタム動作を実装するために使用するようになりました。

于 2013-04-23T05:58:44.797 に答える
5

この手順は完全な designer.cs ファイルに適用されます。それに書かれているすべてのコードは自動的に生成されます。

このファイルはいつでも再作成できるため、変更を加えないでください...これによりメソッドが削除されます...

コードをフォームコードファイルとは別に保持したい場合は、そのようなメソッドをすべて配置できる部分クラスを含む別のファイルを作成することをお勧めします...

それが役に立てば幸い...

于 2013-04-23T06:02:02.610 に答える
1

designer.cs をそのままにしておくと、変更内容が上書きされるのを防ぐだけでなく、予期しないことは何も起こらないということで、他の開発者にも役立ちます。そうは言っても、私が考えることができる例外が少なくとも1つあります。それは、投稿の著者が言及したものです:Dispose()メソッドの拡張です。私の知る限り、このコードは一度生成されると上書きされません。

ただし、私の意見では、 をDispose呼び出すよりもメソッドをオーバーライドしてbase.Dispose()、designer.cs をクリーンなままにしておく方がはるかに優れた解決策です。

于 2013-04-23T06:25:43.967 に答える
0

コントロールのビルドに必要なすべてのコードを配置するために Visual Studio で使用される部分的なデザイナー フォーム クラス。

メソッド InitializeComponent() は上書きできません。フォームのプレビューをレンダリングするためにデザイナー エディターで使用されます。新しいプロジェクトで試してください: フォームのサイズを変更し、ラベルとボタンを追加し、InitializeComponent() メソッドの名前を変更して再コンパイルします。フォームをデフォルトのサイズに戻します!

フォームの読み込みによってコードを呼び出す必要がある場合は、OnLoad() 仮想メソッドをオーバーライドするだけです。フォームの表示によってコードを呼び出す必要がある場合は、OnShown() 仮想メソッドを単純にオーバーライドします。

オーバーライドの開始時に base.Method() を呼び出すことを忘れないでください。

この私の経験が少しでもお役に立てば幸いです!

于 2013-04-23T06:16:28.237 に答える