使用其他表单中的函数

时间:2013-07-27 16:49:02

标签: c# winforms mdiparent

已更新

MDIparent表格:

public void sample()
{
textBox1.Text = "Sample";
}

private void button1_Click(object sender, EventArgs e)
{
MDIParent1 p = new MDIParent1();
LogInForm LogIn = new LogInForm(p); 
DialogResult res = LogIn.ShowDialog()
}

登录表单:

private MDIParent1 _p;
public LogInForm(MDIParent1 p)
{
InitializeComponent();
_p = p;
}

private void button1_Click(object sender, EventArgs e)
{
_p.sample();
this.Close();
}

_p.sample();不起作用

3 个答案:

答案 0 :(得分:3)

更改

p = _p; 

_p = p;

这就是......

答案 1 :(得分:1)

public void sample()
{
   textBox1.Text = "Sample";
}

private void button1_Click(object sender, EventArgs e)
{
   MDIParent1 p = new MDIParent1();
   LogInForm LogIn = new LogInForm(p); 
   DialogResult res = LogIn.ShowDialog()
}

点击按钮,点击此处,即可创建 MDIParent1并将其传递给新的LogInFOrm

private MDIParent1 _p;
public LogInForm(MDIParent1 p)
{
   InitializeComponent();
   _p = p;
}

private void button1_Click(object sender, EventArgs e)
{
   _p.sample();
}

在这里,您在传入的表单上调用sample方法(已在前一个表单上实例化,但从未实际呈现)。要呈现它,您需要调用Show()或{{ 1}}

如果您想要传递单击按钮的表单,您可以完成此操作

ShowDialog()

或者你可以使用LogInForm LogIn = new LogInForm(this); 而根本没有传递表格。

答案 2 :(得分:0)

您需要替换:

p = _p;

在:

_p = p;

这可能有效