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