4

このフォーム内で呼び出されるフォームがあり、いくつかの UserControl が含まれています。フォーム内のすべての UserControlEmployeeFormを編集すると、失われます。EmployeeForm

この図は、コンボボックスの名前を変更した後の TFS ファイル (左) とローカル ファイル (右) の差分を示しています。

ここに画像の説明を入力

this.ucEmployeeKeyOne の例:

public partial class Employee_EmployeeKeyOneRelationUC
    : Employee_EmployeeKeyOneRelation_GenericUC
{ [other Code Here] }

public class Employee_EmployeeKeyOneRelation_GenericUC
    : RelationUC<MyObject>
{ }

および RelationUC の定義:

public partial class RelationUC<T>
    : DataUserControlBase
{ [other Code Here] }

public partial class DataUserControlBase
   : UserControlBase
{ [other Code Here] }

public partial class UserControlBase
   : System.Windows.Forms.UserControl, MyInterfaceHere
{ [other Code Here] }

UserControlが失っているのは から継承されたものだけRelationUC<T>です。RelationUC のジェネリック型が問題を引き起こす可能性がありますか?

4

1 に答える 1

3

Vs デザイナーがコントロールを読み込むには、すべてのパブリック プロパティを含めてコントロールを初期化できる必要があり、空のコンストラクターが必要です。空のコンストラクターがない場合、または継承された null 許容クラスから返されるプロパティがない場合、デザイナーがクラッシュする可能性が高くなります。

これをデバッグするには、

1) VS でプロジェクトを開きますが、コントロールを含むファイルはまだ開いていません。

2) 別の VS を開き、プロジェクトが開かれている VS のプロセスをアタッチします。

3) 例外のブレーク (ショートカット ' CTRL+ D, CTRL+ E' ) を all に設定します (デザイナーがスローしている例外に慣れたら、その例外のみを設定できます)。

4) プロジェクトで VS に移動し、ユーザー コントロールを含むファイルを開きます。例外がスローされると、2 番目の VS がそれをキャッチし、その理由と場所を正確に伝えます。

于 2013-05-01T13:24:35.290 に答える