从UserControl访问MainForm中的访问控制

本文关键字:访问控制 MainForm UserControl 访问 | 更新日期: 2023-09-27 18:29:22

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

我试过:

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

以及:

Form1.viewport.Dock = DockStyle.Fill;

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

UserControl如何在代码/运行时访问其父控件?

从UserControl访问MainForm中的访问控制

没关系。我只是有一个脑筋急转弯的时刻,我想明白了:

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

尝试下面的代码:

从用户控件访问父控件-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");
}
}

我已经测试过了,运行良好

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

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