zoukankan      html  css  js  c++  java
  • WinForm中窗体间的数据传递(一)

    窗体间的数据传递的几种方法:

    1.通过子窗体的Tag属性

    2.借助第三方的一个静态变量

    3.通过父窗体的Tag属性

    局限性:必须得有一个窗体已经关闭,数据才能传递过去

    那如果,我们想在都不关闭任何窗体的情况下进行数据传递,该如何操作?

    在我的另外一篇博文中(WinForm中窗体间的数据传递(二))可以借助向外引发事件来解决这个问题

    例子截图如下:

    当用户点击子窗口的“添加”按钮的时候的代码:

    private void button1_Click(object sender, EventArgs e)
            {
                this.DialogResult = DialogResult.OK;
                //创建一个Info对象
                User info = new User();
                //将数据保存到Info对象中
                info.UserName = textBox3.Text;
                info.PassWord = textBox4.Text;
                //问题:如何将info对象中的信息传递给主窗口
                //方案一:将对象info保存到子窗口的Tag属性中,则从父窗口中可以通过实例化的子窗口对象拿到info对象信息
                //this.Tag = info;
                //方案二:将对象info保存到一个静态变量中
                //第三方.user = info;
                //方案三:将对象info保存到父窗口的Tag属性中
                MainFrm mainfrm = this.Owner as MainFrm;
                mainfrm.Tag = info;
            }

    将用户点击主窗口中的“添加信息”的代码:

    private void 添加用户ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                FrmUser userDialog = new FrmUser();
                if (userDialog.ShowDialog() == DialogResult.OK)
                //if (userDialog.ShowDialog(this) == DialogResult.OK)
                {
                    //方案一:通过子窗口的Tag属性进行窗体间的数据传递
                    User user=userDialog.Tag as User;
                    //方案二:借助第三方的一个静态属性进行数据传递
                    User user = 第三方.user;
                    //方案三:通过父窗口的Tag属性进行窗体间的数据传递,注意传递一个this参数给userDialog.ShowDialog()
                    User user = this.Tag as User;
                    MessageBox.Show("用户名:"+user.UserName+"\r\n密码:" + user.PassWord);
                }
            }

     其中,得特别注意第三种方案,当将要传递的信息保存到“主窗口”的Tag中的时候,在显示“子窗口”的时候需要通过ShowDialog传递一个参数:this,用以设置当前窗体为子窗体的Owner

    原创文章,转载请注明出处:http://www.cnblogs.com/hongfei/archive/2012/12/17/2822137.html

     

  • 相关阅读:
    差分约束
    关系运算图。。。(差分约束)
    克鲁斯卡尔算法+并查集
    整体代换(数学)
    魔性の分块 | | jzoj1243 | | 线段树の暴力
    论人品 | | noip1015模拟考
    hash 表 | | jzoj 1335 | | 脑残+手残 | | 集合的关系
    凸轮大总结
    Floyd | | jzoj[1218] | | [Usaco2009 Dec]Toll 过路费 | | BZOJ 1774 | | 我也不知道该怎么写
    topsort | | jzoj[1226] | | NOIP2003神经网络
  • 原文地址:https://www.cnblogs.com/hongfei/p/2822137.html
Copyright © 2011-2022 走看看