即使Modifier设置为PUBLIC,也无法访问其他窗体上的控件

时间:2014-06-08 10:32:53

标签: c# .net winforms

我正在尝试从另一个表单访问我的MainForm。此控件是FlowLayoutPanel,我已将其访问修饰符设置为Public。我不知道为什么我不能从另一种形式访问它,因为这种方法在过去一直对我有用。

MainForm.cs:

void button1_Click(object sender, EventArgs e)
{
    using(var editor = new Editor())
    {
        editor.ShowDialog();
    }
}

Editor.cs:

void button1_Click(object sender, EventArgs e)
{
    int count = MainForm.flow.Count;
}

为什么我无法从其他表单访问此控件 - 即使其修饰符设置为public

1 个答案:

答案 0 :(得分:2)

您正在访问控件/属性错误。

你应该这样做。

MainForm.cs

private void button1_Click(object sender, EventArgs e)
{
  var frm = new Editor();
  frm.ShowDialog(this);
}

Editor.cs

private void button1_Click(object sender, EventArgs e)
{
    var f = (this.Owner as MainForm);
    int count = f.flow.Count;
    MessageBox.Show(count.ToString());
}