none
窗体传值问题 RRS feed

  • 问题

  • 当子窗体的文本框的值改变  关闭时  父窗体 的文本框 变成 子窗体里文本框的的内容 

    子窗体是一个新窗口 在父窗体new然后show出来的

    窗体继承可以做到 还有什么方法啊   ??
    2009年6月17日 9:13

答案

  •     public class MainFrom : Form 
        {
            public TextBox fParentTextBox;
            /*
             省略
             */
            private void Show()
            {
                using (ChildFrom fChildFrom = new ChildFrom())
                {
                    if (fChildFrom.ShowDialog() == DialogResult.OK)
                    {
                        this.fParentTextBox.Text = fChildFrom.fChildTextBox.Text;
                    }
                }
            }
        }
    
        public class ChildFrom : Form
        {
            public TextBox fChildTextBox;
    
            /*
             省略
             */
    
            private void Close()
            {
                this.DialogResult = DialogResult.OK;
            }
        }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 MrYang 2009年6月18日 0:52
    2009年6月17日 9:22
    版主
  • 方法有很多,使用property, 添加事件,把父窗体实例传入子窗体


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 MrYang 2009年6月18日 0:56
    2009年6月17日 9:34
    版主
  • 你好!
         1,可以在子窗体中定义一个带参数的构造函数,参数类型是父窗体的类型,然后通过这个参数把父窗体的实例传递给子窗体,保存在一个成员字段里,然后就可以使用这个实例取值了!
         2,可以子窗体中自定义一个事件,通过自定义的时间参数来传递想传递的值
    周雪峰
    • 已标记为答案 MrYang 2009年6月18日 0:56
    2009年6月17日 11:18
    版主

全部回复

  •     public class MainFrom : Form 
        {
            public TextBox fParentTextBox;
            /*
             省略
             */
            private void Show()
            {
                using (ChildFrom fChildFrom = new ChildFrom())
                {
                    if (fChildFrom.ShowDialog() == DialogResult.OK)
                    {
                        this.fParentTextBox.Text = fChildFrom.fChildTextBox.Text;
                    }
                }
            }
        }
    
        public class ChildFrom : Form
        {
            public TextBox fChildTextBox;
    
            /*
             省略
             */
    
            private void Close()
            {
                this.DialogResult = DialogResult.OK;
            }
        }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 MrYang 2009年6月18日 0:52
    2009年6月17日 9:22
    版主
  • 方法有很多,使用property, 添加事件,把父窗体实例传入子窗体


    http://feiyun0112.cnblogs.com/
    • 已标记为答案 MrYang 2009年6月18日 0:56
    2009年6月17日 9:34
    版主
  • 你好!
         1,可以在子窗体中定义一个带参数的构造函数,参数类型是父窗体的类型,然后通过这个参数把父窗体的实例传递给子窗体,保存在一个成员字段里,然后就可以使用这个实例取值了!
         2,可以子窗体中自定义一个事件,通过自定义的时间参数来传递想传递的值
    周雪峰
    • 已标记为答案 MrYang 2009年6月18日 0:56
    2009年6月17日 11:18
    版主
  • 你说的2 在子窗体中定义一个事件 具体怎么实现啊?

    2009年6月18日 0:58
  • 你好!
         具体可以参考这里:
    http://msdn.microsoft.com/zh-cn/library/w369ty8x.aspx
    周雪峰
    2009年6月18日 7:09
    版主