簡體   English   中英

從用戶控件訪問表單面板?

[英]Access form panel from user control?

在我的項目中,我使用了Windows窗體和用戶控件。 表單上有一個面板。 我把用戶控件放在上面。

當我單擊用戶控件上的按鈕時,我想在Windows窗體面板上加載另一個用戶控件。 我將面板的修改器設為公開。

我嘗試的代碼如下,這是使用的變量:

  • myusercontrolpage1 :這是我的第一個用戶控件
  • myusercontrolpage1 :這是我的第二個用戶控件
  • FrmMain :這是我的主要形式
  • pnlOrta :這是我在其中加載用戶控件的面板

這是代碼,無法正常工作:

 Userclasses.myusercontrolpage1 page1 = new Userclasses.myusercontrolpage1();
 Userclasses.myusercontrolpage2 page2 = new Userclasses.myusercontrolpage2();
 FrmMain pnl = new FrmMain();        
 pnl.pnlOrta.Controls.Clear(); 
 pnl.pnlOrta.Controls.Add(page2);
 pnl.pnlOrta.Dock = DockStyle.Fill;
 pnl.pnlOrta.BringToFront();

當我單擊用戶控件上的按鈕時,我想在Windows窗體面板上加載另一個用戶控件。

如何從用戶控件訪問表單的面板並加載另一個用戶控件?

編輯:

我替換了這個:

FrmMain pnl = new FrmMain();

FrmMain f = (FrmMain)this.ParentForm;

這工作了。

我不確定我是否了解您要做什么,但可以回答問題的這一部分:

如何從用戶控件訪問表單的面板...

如果您知道將在Panel上加載UserControl,則可以使用.Parent屬性。 您可以在UserControl中執行以下操作(假設它有一個按鈕):

public partial class MyUserControl : UserControl
{
    public MyUserControl()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Panel pnl = this.Parent as Panel;
        if (pnl != null)
        {
            pnl.BackColor = Color.Red;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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