在我的项目中,我使用了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;
这很有用。
答案 0 :(得分:0)
我不确定我是否理解你要做的事情,但回答了你的这部分问题:
如何从中访问表单的面板 用户控件...
如果您知道您的UserControl将在Panel上加载,那么您可以使用.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;
}
}
}