UserControl中的MainForm访问控制

时间:2013-08-29 06:08:19

标签: c# .net winforms

我正在尝试从添加到MainForm的UserControl中访问位于MainForm上的控件(用户控件和正常控件)。

我试过了:

(this.Parent as Form).viewport.Dock = DockStyle.Fill;

还有:

Form1.viewport.Dock = DockStyle.Fill;

我还在我需要在MainForm上访问的两个控件上设置了Modifier属性:Public,但我仍然无法访问这些控件。

UserControl如何在代码/运行时访问它的Parent控件?

3 个答案:

答案 0 :(得分:0)

没关系。我只是有一个脑死亡的时刻,我想出来了:

(this.Parent as Form).Controls["TabStripContainer"].Dock = DockStyle.Fill;

答案 1 :(得分:0)

尝试下面的代码:

Get access to parent control from user control - C#

MyForm的

public partial class MyForm : Form
{
   public MyForm()
   {
    InitializeComponent();
    this.myUserControl1.ParentForm = this;
   }
}

的MyUserControl

public partial class MyUserControl : UserControl
{
   public MyForm ParentForm { get; set; }

public MyUserControl()
{
    InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
    if (ParentForm == null)
        return;

    ListBox listBox = (ParentForm.Controls["listBox1"] as ListBox);
    listBox.Items.Add("Test");

}
}

答案 2 :(得分:0)

我测试了这个并且工作正常

((this.Parent) as Form2).uc2.Dock = DockStyle.Fill;

其中form2是包含用户控件uc2的表单。