在初学者写窗体程序的时候,会常遇到窗体传值的问题困扰,比如说我实例化了需要用到的窗体,我就可以取到窗体当中的控件进行传值,这样是传值不过来的 接下来有两种方法给大家整理如下:
在这里我用vs创建了两个窗体,一个Form1,一个Form2。窗体Form1里面创建了一个文本框TextboBox和一个Button按钮,
窗体Form2里只创建了一个label用来接收从Form1文本框传过来的值,我点击Form1的按钮显示Form2的窗体来看看传值的效果(我相信大家应该都会)。
设置Form1里的TextboBox的Modifiers的值为公共的(public),这样才方便我们在窗体Form2当中调用 这里大家注意一下,你要调用哪个控件上面的值就必须把Modifiers设置为public,否则调用不了。话不多说 上传值代码。
方法一:在Form1里的button点击事件里面写 Form2 fm = new Form2();
fm.Owner = this;//定义此窗体为当前窗体
fm.ShowDialog();
在Form2的load事件里写 label1.Text=(Owner as Form1).textboBox1.Text;//label的值为Form1的TextboBox的值
因为设置了TextboBox的Modifiers为公共的,所以可以调用;我们来看看传值的效果(如图):
方法二:通过中间值传值。同样以上述两个窗体为例,在解决方案新建一个class1.cs如图:
新建一个中间值 static string str=“”;
在Form1里的button单击事件中写 Form2 fm = new Form2();
Class1.str = textBox1.Text;//先把文本框的值传入到类里的变量(中间值)
fm.ShowDialog();
在Form2中的load加载界面写 label1.Text = Class1.str;
我们来看看测试的结果(如图):