C#中窗体之间的控件如何传递值,PS:窗体之间不是父子关系,只是值相互调用.

如题所述

窗体传值两种方式:
一 :全局变量,1窗口里赋值,2窗口里直接调用;
二:构造函数,修改2窗体的构造函数,加参数,然后在1窗体里new2窗体对象的时候把1窗体的值以参数方式传递到2窗体,就可以了!
百试百灵!望采纳!!追问

你说的第一种方法能具体一些吗?
第二种方法只能是窗体之间要连接,通过一个窗体打开另一个,如果只是单纯的调用值,窗体之间没有关系,这种方法就不能实现啊~~

追答

全局变量的意思你知道吧!你可以新建一个静态类,然后写几个属性,分别提供get和set方法就行了,然后在某个窗体赋值后,其他所有窗体都可以调用这些属性,不管窗体之间有没有关系!!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-10
c#编程中,所有的控件都是Frend模式,就是在这个工程中都可以使用。可以直接用
FORMNAME.CONTROLNAME.PROPERTy=NEWFORM.CONTROLNAME.PROPERTY
第2个回答  2013-06-10
添加一个公共类,通过公共类传递。追问

能举个例子吗?

追答

1.右击项目名——添加——类。

这里演示用类名PublicClass:一个公用静态变量PubStr,稍后把Form1中的信息赋值给PubStr,然后在Form2中显示出来。

class PublicClass
    {
        public static String PubStr;
    }

2.Form1中添加一个TextBox,Name=txtMessages;一个Button,Name=btnSend,Text="发送".

“发送”按钮代码:

private void button1_Click(object sender, EventArgs e)
        {
            PublicClass.PubStr = this.txtMessages.Text.Trim();
            this.Hide();
            Form2 fm2 = new Form2();
            fm2.Show();
        }

3.右击项目名——添加——新建项——Windows窗体。

这里演示用Form2,添加控件Label,Name=lblShow.

Form2的Load事件代码:

private void Form2_Load(object sender, EventArgs e)
        {
            lblShow.Text = PublicClass.PubStr;
        }

4.测试运行

 

 

另外,我多嘴两句。上面有位仁兄说修改构造函数我很不赞成,怕程序大了后患无穷。

追问

我已经采纳了,不然一定采纳你的,非常感谢~~!

相似回答