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
c#winform中怎样在一个窗口定义一个数组后在其他窗口中给它赋值