c# winform 子窗体更新父窗体,调用父窗体的函数
2个回答
展开全部
可以在父窗口打开子窗口的时候把自己传过去
比如父窗体是form1,子窗体form2
子窗体中
From faFrom;
public Form2(From f)
{
faForm = f;
InitializeComponent();
}
父窗体
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.getForm(this);
f.show();
}
之后就可以通过对faForm操作,从而控制父窗体
如果要使用父窗体的控件
(TextBox)faForm.Controls.Find("textBox1", false)[0]
就是取父窗体中,id为 textBox1的textbox控件
比如父窗体是form1,子窗体form2
子窗体中
From faFrom;
public Form2(From f)
{
faForm = f;
InitializeComponent();
}
父窗体
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
f.getForm(this);
f.show();
}
之后就可以通过对faForm操作,从而控制父窗体
如果要使用父窗体的控件
(TextBox)faForm.Controls.Find("textBox1", false)[0]
就是取父窗体中,id为 textBox1的textbox控件
展开全部
定义个委托,父窗体在实例化子窗体的时候,通过委托把方法传给子窗体。子窗体在需要的时候调用这个委托即可
追问
您好,请问用代码怎么实现呢, 给个实例吧
追答
// 这个是子窗体
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
// 申明委托,与父窗体方法类型相同
public delegate string TestFunDelegate(int a);
// 用来接收父窗体方法的委托变量
public TestFunDelegate testFunDelegate;
private void button1_Click(object sender, EventArgs e)
{
if (testFunDelegate != null)
{
// 调用方法
MessageBox.Show(testFunDelegate(2));
}
}
}
// 父窗体的内容
private void MainForm_Load(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.testFunDelegate = TestFun; //父窗体的方法传给子窗体
frm2.Show();
}
// 父窗体的方法
string TestFun(int a)
{
return "我是主窗体方法";
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询