C#Winform编程,怎样在一个窗口f1中调用另一个窗口f2 在f2中数据改变,在f1中相应的也改变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#Winform编程,怎样在一个窗口f1中调用另一个窗口f2 在f2中数据改变,在f1中相应的也改变相关的知识,希望对你有一定的参考价值。

C#Winform编程,怎样在一个窗口f1中调用另一个窗口f2
在f2中数据改变,在f1中相应的也改变

速度,急用!!!!!!!!
难道没有高手么

昨天也遇到了类似的问题,最后我的解决方法如下
在f2中写一个
public f1 F1;

在f1窗口中实例化f2的时候这样写
f2 F2 = new f2();
F2.F1 = this;
F2.ShowDialog();

当f2中数据改变时(假设改变的数据是在f2中是 int x; 在f1中是int y;)
F1.y = x;
这样就可以了
主要思想就是把f1当做f2的一个参数传递到f2中
参考技术A 假设我有两个窗口类,Form1和Form2。
Form1是主窗口,两个窗口都有一个文本框叫textBox1。
Form1实例f1,Form2实例f2,我想让f2的textBox1内容改变时f1的textBox1内容页改变可以这样。
Form2所在命名空间中添加委托:public delegate void MHandler(object sender, EventArgs e);
Form2类中添加事件:public event MHandler MChanged;
Form2类中构造函数添加代码:
this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
Form2类中添加函数:
private void textBox1_TextChanged(object sender, EventArgs e)

if (MChanged != null)
MChanged(sender, e);

然后就是Form1类中:
在能够获取f2实例的地方添加:f2.MChanged += new MHandler(f2_MChanged);
Form1类中添加函数:
void f2_MChanged(object sender, EventArgs e)

textBox1.Text = (sender as TextBox).Text;

这样当f2中文本内容改变,f1中文本内容也跟着改变。
参考技术B 你在打开子窗体时候加上
子窗体.Owner = this;

在子窗体中:
父窗体 frm1 = (父窗体)this.Owner;
((Label)frm1.Controls["panel2"].Controls["控件名称"]).Text = "欢迎";
这个可以调用父窗体控件
参考技术C C# WinForm编程中,你是否遇到过这样的问题,在主窗口Form1中点击按钮,弹出一个子窗口Form2,你希望在Form2中调用Form1的函数,改变Form1的显示,却发现Form1不听话,达不到预期效果。有的人说我调试了的,那段函数确实执行了,怎么还是没有显示呢? http://blog.csdn.net/bdstjk/article/details/7007882 参考技术D 在f2中实例f1,当f2中的数据修改后,f1一起修改

以上是关于C#Winform编程,怎样在一个窗口f1中调用另一个窗口f2 在f2中数据改变,在f1中相应的也改变的主要内容,如果未能解决你的问题,请参考以下文章

(C#)怎样在一个窗口中调用另一个窗口中的dataGridView

winform 窗体传值刷新问题。

关于C# winform调用另一个窗口中的控件的问题

c#winform中怎样在一个窗口定义一个数组后在其他窗口中给它赋值

winform中如何在一个窗口中调用另一个窗口的textBox里的Text属性值

winform打开唯一窗口构造函数传值