2013-04-18 22 views
4

我有一個名爲EmployeeForm的窗體,裏面包含一些用戶控件,當我編輯EmployeeForm時,表單中的每個用戶控件都會丟失。編輯winForm時失去用戶控件VS2012

此圖顯示TFS(左)和本地(右)文件之間的差異修飾的組合框的名稱this.ucEmployeeKeyOne的

enter image description here

實施例後:

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

public class Employee_EmployeeKeyOneRelation_GenericUC 
    : RelationUC<MyObject> 
{ } 

和Relation的定義:

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的通用類型是否會導致問題?

+0

IDE中的設計者有時會嚇壞了。你有沒有嘗試重新啓動Visual Studio? –

+0

@PaulSasik是的,我試過。謝謝您的試用 –

+0

檢查以確保您繼承的UC類可以通過IDE正確實例化。例如。確保有公共的構造函數,類不是抽象的等等。通過直接在設計器中打開繼承的控件來測試這個。 –

回答

3

對於Vs設計者加載控件,控件應該能夠初始化包含所有公共屬性,並且你必須有一個空的構造函數。如果你沒有一個空的構造函數,或者有從繼承的可空類中返回的屬性,那麼設計器很可能會崩潰。

調試此,

1)打開你的VS項目,但不要打開包含尚未控制的文件;

2)打開另一個VS並附加你的項目打開VS的過程;

3)設置爲所有的異常中斷(短切「CTRL + dCTRL + Ë」)(一旦你熟悉了什麼異常的設計師是投擲,可以設置只有例外)。

4)轉到VS項目並打開包含您的用戶控件的文件。當拋出異常時,第二個VS會捕獲它並準確告訴你爲什麼以及在哪裏。