2017-12-15 5 views
-4

私は以下のように、いくつかの初期化制御値を変更する必要があります。* Design.csファイルは自動的にリセットされ、手動で書かれたコードは削除されますか?

 this.lblName.Top = 10; 
     this.lblFamily.Top = this.lblName.Top + this.lblName.Height + 15; 
     ... 

私はInitializeComponent()方法でこれらのコードを書くとき(自動的にこのファイルがWindowsの[Windowsフォーム名] Designer.csファイルで作成されたをフォームpartial classコンテナ)、このコードは自動的に削除され、* .cs [デザイン]ビューにエラー警告が表示されることがあります。

私は、新しいコントロールを追加したいし、

がどのようにコントロールのプロパティの初期化された値を割り当てることができ、ファイルを手動* Designer.csでの書き込み充当コードでプロパティ値を初期化しています割り当てますか?

&

なぜ* Designer.csファイルは自動的にリセットまたは* .csファイル[デザイン]タブのエラーページを返すのだろうか?あなたがフォームの

+2

TL; DR。 **決して '* .designer.cs'ファイルを変更することはありません。それがデザイナー*ファイルなのです。そのため、上部にファイルを変更しないことを示すメッセージが含まれています。 –

+3

生成されたファイルを変更していますが、再生成されたときにその理由が不明です。これは* generated *ファイルです。それを変更しないでください! – Amy

+0

"このファイルはツールによって生成されました"。 ツールではない:D –

答えて

2

は2つのファイルがあります:

MyFormClass.csここにあなたがそれらを変更、プロパティを追加し、好きなようにあなたがなど、編集することができ

MyFormClass.designer.csを//ここ

自動生成され、いけない置くもの)(InitializeComponentの後にコンストラクタでカスタムコードを入れて呼び出す

public MyFormClass() 
{ 
    InitializeComponent(); 
    // do it here 
    this.lblName.Top = 10; 
    this.lblFamily.Top = this.lblName.Top + this.lblName.Height + 15; 
} 

これは部分クラス定義の後半であるため、すべてのプロパティにアクセスできます。

ファイル1:

namespace Test{ 
    public partial class MyFormClass{ 
    // add some code 
    } 
} 

ファイル2:

namespace Test{ 
public partial class MyFormClass{ 
    // add some code here 
    } 
} 
+0

よろしくお願いします。 ** MyFormDesigner.cs **お​​よび** MyForm.resx **ファイルの近くで、Windowsフォームフォルダに新しい特定の部分クラスを追加するにはどうすればよいですか?本当の場合は、新しい質問について私に案内してください。 – Tuberose

+1

これはVisual Studioで自動的に行われますが、クラスファイルを作成してそこにコードを置くことができます。同じ名前空間を使用します。 – FrankM

+0

** MyForm.cs **フォルダに新しいファイルを追加することはできません。自動生成されたファイルの上に? (上記で解決する** MyForm **クラスの部分クラス) – Tuberose

関連する問題