2

Visual Studio 2008 で新しい C# Windows フォーム アプリケーション プロジェクトを開くと、大量の自動生成されたコード (AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs、Form1.Designer.cs、Form1.resx、Program .cs)。

ツールボックスから Form1.cs[Design] にコンポーネントを追加し、Form1.cs にコードを追加する以外に、どのファイルを変更できますか? そしてどうやって?また、どのファイルをそのままにしておく必要がありますか?

PS: 私が知る限り、これは広大なテーマです。網羅的な回答は期待していません。共有したい情報は何でも構いません。また、私は C# の初心者であり、最も基本的な情報のみが必要であることにも言及したいと思います。

PPS: 「インターネットを検索する」などの回答を考えている場合は、しないでください。私はインターネットを検索しましたが、探している答えが見つかるまで何度も検索します。有益な情報をいくつか見つけましたが、もっと必要だと感じています。おそらくstackoverflow.comで入手できると思います。


更新 1: この質問には回答がありました。sh_kamalh からの回答を承認済みとしてマークしました。David と Hans Passant からの回答も承認済みとしてマークしたいと思いますが、複数の回答を承認済みとしてマークすることはできないと思います。それともできますか?

回答から推測できることから、Visual Studio 2008 の C# Windows フォーム アプリケーション プロジェクトで自動生成されたコードを決して変更しないでください。

上記の要約または以下の回答に同意しない場合は、矛盾する回答を自由に追加してください。または、以下の回答を補足する回答がある場合は、その回答を自由に追加してください。この件については、もっと語るべきことがあると確信しています。


更新 2: C# Windows フォーム アプリケーション プロジェクトの独自のバージョンを作成することもできるようです (以下の Davids の回答を参照してください。これは、「更新 1」を作成したときに忘れていました)。また、そうする場合は、ゼロから始める必要があるようです。

4

3 に答える 3

7

自動生成されたファイル:

  • AssemblyInfo.cs : その中の属性は、プロジェクト + プロパティ、アプリケーション タブ、アセンブリ情報ボタンによって設定されます。ファイルを直接編集しても問題ありません。IDE が混乱することはほとんどありません。

  • Settings.Designer.cs : Settings デザイナーから生成された Settings.settings ファイルから自動生成されます。このファイルへの編集はすぐに失われます。

  • Resources.Designer.cs : Resources デザイナーから生成される Resources.resx ファイルから自動生成されます。このファイルへの編集はすぐに失われます。

  • Form .Designer.cs : フォーム デザイナーによって自動生成されます。このファイルは編集可能ですが、フォームのレイアウトを保存する独立したファイルはありません。デザイン ビューは、デザイン時にこのコードを実行し、リフレクションを使用してフォームとコントロールのプロパティを回復することによって生成されます。デザイナを閉じると再度保存され、InitializeComponent メソッドとコントロール変数が再生成されます。このプロセスに耐えられるようにコードを変更するには、コードを正確に記述する必要がありますデザイナー自身のやり方です。単純なプロパティ値の変更を超える変更を行う場合、これはかなり重要です。かなりのリスクもあり、賢明でない変更は簡単に例外を引き起こす可能性があります。これが設計時に発生すると、悪名高い WSOD (White Screen Of Darn) が表示され、多くの場合非常に不可解な例外が表示され、フォームを設計できないことが通知されます。

デザイナーでフォームを変更するときに InitializeComponent に加えられる変更を観察することで、デザイナーがコードを生成する方法について詳しく知ることができます。これを正しく理解することは、確かに初心者向けの資料ではありません。おそらく、.NET プログラミングの速度に慣れるまでには、もっと差し迫ったことを学ばなければなりません。デザイナーは、あなたの生活を楽にし、間違いのリスクを最小限に抑えるためにそこにいます.

于 2010-09-24T13:09:57.430 に答える
3

これらのファイルのほとんどはテンプレート化されており、新しいプロジェクトに含める内容とファイルに含まれるものを変更できます。新しいプロジェクト タイプやアイテム用に独自のテンプレートを作成することもできます。 http://msdn.microsoft.com/en-us/magazine/cc188697.aspx

既存のものを変更する限り、作業するすべてのプロジェクトでそれらの変更が必要になることが確実でない限り、私はそれをお勧めしません.別のプロジェクト用に新しいテンプレートを作成する方が簡単です. /ファイルの種類。

于 2010-09-24T11:26:06.253 に答える
3

自動生成されたファイルを変更する理由は何ですか?
フォームの場合、.Designer.cs または .resx ファイルを変更しないでください。フォームを変更するたびに生成されるため、行った変更は次回コードが再生成されるときに上書きされます。
Designer.cs で何かを変更したい場合は、元の cs ファイルでその変更を行うことができます。これは、クラスが部分的としてマークされているためです。つまり、ファイル Form1.cs と Form1.Designer.cs のコードが結合されて、最終的なコード。
リソースを追加する場合は、リソース ファイルを追加し、生成された .resx ファイルをそのまま残します。AssemblyInfo.cs では、アセンブリの一般情報を変更できます。

簡単に言えば、生成されたファイルをそのままにしておくだけです。

于 2010-09-24T11:28:35.140 に答える