C#中窗体间数据传递的两种方法

      C#中有时需要在其他窗体上访问主窗体中的成员数据或系统中一些基本配置数据要在不同的窗体中使用,就需要在不同窗体间传递相同数据。以下总结两种窗体间数据传递的方法。

 

      1,访问主窗体中的成员数据的方法:

      (1),创建一个应用程序(已有主窗体Form1);

      (2),再添加一个窗体(Form2);

      (3),在Form1中添加一个按钮button1;

      (4),在Form2中也添加一个按钮button1;

      (5),在Form2中定义一个Form1的对象:

       public Form1 m_form1;
      (6),用以下代码改写Form2的构造函数Form2:

        public Form2(Form1 myform)
        {


            InitializeComponent();

 

 

            this.m_form1 = myform;          //添加的代码


        }     

      (7),在Form1中定义我们要传递的成员数据:

        public int a;
      (8),在Form1中按钮button1的单击事件中加入以下代码:

        private void button1_Click(object sender, EventArgs e)
        {

            //添加的代码
            a = 10;
            Form2 m_form = new Form2(this) ;

            m_form.Show();
        }

     (9),在Form2中按钮button1的单击事件中加入以下代码用于测试:

 

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show(this.m_form1.a.ToString() );

        }

 

      2,基本配置数据共享的静态类方法:

      (1),创建一个应用程序(已有主窗体Form1);

      (2),再添加一个窗体(Form2);

      (3),在Form1中添加一个按钮button1;

      (4),在Form2中也添加一个按钮button1;

      (5),创建一个静态类Class1,该类的代码如下:

       public class Class1
      {
        public static int a;


        static Class1()
        {
            a = 0;
        }

 

        //属性

        public static int A
        {
            get
            {
                return a;
            }

            set
            {
                a = value;
            }
         }

      }

      (6),在Form1中按钮button1的单击事件中加入以下代码:

        private void button1_Click(object sender, EventArgs e)
        {

            //赋值为12

            Class1.A = 12;

            Form2 m_form = new Form2(this);

            m_form.Show();

        }

      (7),在Form2中按钮button1的单击事件中加入以下代码用于测试:

        private void button1_Click(object sender, EventArgs e)
        {

            //显示值,12
            MessageBox.Show(Class1.A.ToString());

        }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lujunql

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值