c#如何把子窗体的值传给父窗体?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何把子窗体的值传给父窗体?相关的知识,希望对你有一定的参考价值。
比如我在父窗体定义了一个变量h,那么我在子窗体里放一个按钮,点击按钮后就把2传给父窗体的变量h,使父窗体的h=2.
你可以在父窗体中重写个form方法:例:public Form1(string h)
InitializeComponent();
this.h = h;
label1.Text=h;
然后在子类中这样写:例单击一按钮事件:
private void button1_Click(object sender, EventArgs e)
Form1 a =new Form1("bb"); //这里测试把bb传过去!
a.Show();
希望能帮到你! 参考技术A 方式一:
在子窗体中定义 父窗体的引用,使用该引用操作父窗体的功用方法和变量
方式二:
在Progam类中定义static的父窗体引用,这样在所有的子窗体中都可以使用该引用来操作父窗体
比如:
public static MainForm mainForm;
public static Main()
.......
mainForm=new MainForm();
Appliection.Run(mainForm);
调用时
子窗体中:Program.mainForm.变量=XXX;
建议使用第二种方式
3其它方式:使用构造传递引用方式 参考技术B 1吧变量h声明为public static..子窗口直接:父窗口类名.h=2
2或者吧父窗口对象传到子窗口去。。直接就可以调用了 参考技术C 把父窗体 public static Form1 form1;
public static Main()
form1=new From1();
Appliection.Run(from1);
From2
this.MDIParent = from1;//有父窗体
this.MDIParent = null; //没有父窗体
C# winform 父窗口子窗口按钮控制
首先,父窗口有按钮调出不同的子窗口,没子窗口中有“修改”“保存”按钮,当点击“修改”后,父窗口中所有关于打开子窗口的按钮的值全部变为fasle。之后点击“保存”按钮,父窗口的按钮值又全部变为true。求解决办法。需要添加什么事件,和代码?
在父窗体内中添加一全局方法,查找到你要禁用的按钮,设置为不可用;在子窗体的修改按钮中调用这一方法;
话说有必要吗?直接将子窗体打开为模式窗体,只能操作当前子窗体,在子窗体没关闭前不能操作父窗体不简单些吗?追问
因为设定是只要没点击“修改”,就仍然可以操作父窗口。
追答那就是前面说的,定义一个全局的方法,再调用,或者把父窗体中打开子窗体的按钮设为全局的,在子窗体中操作它
追问冒昧的问一下,这个全局方法该怎么写。。。。 没用过 举个例子也可以
追答假设你的父窗口叫frmMain,添加方法:
public static void SettingButton()
foreach(Control control in Controls) //这里你自己改下,在哪个范围内查找
if(control is Button) //如果是按钮,就禁用它
control.Enable=false;
在子窗体按钮事件中调用:
frmMian.SettingButton();
基本就是这样,手打未验证过,细节你自己改下
错误 1 “WindowsApplication6.Form2”并不包含“FindControl”的定义
求解决方法
以上是关于c#如何把子窗体的值传给父窗体?的主要内容,如果未能解决你的问题,请参考以下文章
C#怎么把子窗体中的comboBox1的值能够传到父窗体的toolStrip组件中的textbox中去么?能的话代码怎么写