[英]Can't access the properties of user control
我有一個用戶控件,其中要添加另一個用戶控件,我要添加以下子用戶控件,
ucSubMenu menu = new ucSubMenu(this);
pnBox.Controls.Add(menu);
在子用戶控件中,我具有將初始化父用戶控件的屬性過程。 因此,在子用戶控件的構造函數中,我采用了父用戶控件對象,如下所示:
private UserControl parentUserControl;
public UserControl ParentUserControl
{
get { return parentUserControl; }
set { parentUserControl = value; }
}
public ucSubMenu(UserControl uc)
{
InitializeComponent();
switch (Sys.ToString(uc.GetType()))
{
case "ucReport1":
ParentUserControl = uc as ucReport1;
MessageBox.Show(Sys.ToString(parentUserControl.GetType()));
ReportClass rc = parentUserControl.reportBindingSource.Current as ReportClass;
//menuBindingSource.DataSource = rc.ItemList;
break;
}
}
我無法像構造函數中那樣訪問父級用戶控件的公共屬性,即ReportClass rc = parentUserControl.reportBindingSource.Current as ReportClass; //menuBindingSource.DataSource = rc.ItemList;
ReportClass rc = parentUserControl.reportBindingSource.Current as ReportClass; //menuBindingSource.DataSource = rc.ItemList;
如何從子用戶控件訪問父用戶控件的屬性?
對象parentUserControl
的聲明類型為UserControl
,因此在編譯時僅知道該類的屬性。 要使用在運行時發生的“實際”控件的屬性,您將需要進行類型轉換,如下所示:
ucReport1 reportCtl = (ucReport1)parentUserControl;
然后reportCtl.reportBindingSource
將進行編譯(假設我在上面使用了正確的Type Cast,否則使用所需的東西)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.