簡體   English   中英

無法訪問用戶控件的屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM