A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄晓波 黑马帝   /  2013-4-26 11:07  /  1362 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄晓波 于 2013-4-26 17:18 编辑

winform窗体之间的传值问题:现有主窗体FormMain,子窗体FormSon,现在如何将主窗体FormMain中的某些值传递到子窗体FormSon中进行处理,处理完成之后的结果再返回给主窗体FormMain?

3 个回复

倒序浏览
设置全局变量呗。
回复 使用道具 举报
一种方法是在主窗体中new子窗体时将需要传递的值以参数的形式传给子窗体,
但是子窗体必须写一个接收参数的构造方法,
同时加out修饰参数就可以将结果返回给主窗体了;
另一种方法是将主窗体的引用this传给子窗体,
当然子窗体也必须写一个接收参数的构造方法,
子窗体中就可以控制主窗体的变量(变量必须是public修饰的)。
:)

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
在子传递中声明一个方法设置主窗体要传入的参数,子窗体通过属性传值给主窗体。
主窗体代码片段
  FrmBjtx f = new FrmBjtx();
   f.Run("挂号报警温馨提示", ksmc, bjs, 15, false,ksdm);
   GlobalVariable.isFormActived[ksdm] = true;
窗体代码片段
/// <summary>
        ///  运行
        /// </summary>
        public  void Run(string title,string ksmc, int bjs, int zdgbsj,bool gb,string id)
        {
                     
            _ksmc = ksmc;
            _bjs = bjs;
            _zdgbsj=zdgbsj;
            _gb = gb;
            _title = title;
            _ksdm = id;
            this.Show();         
         
            //显示信息
            
        }

private void FrmBjtx_FormClosed(object sender, FormClosedEventArgs e)
        {
            GlobalVariable.isFormActived.Remove(_ksdm);
        }

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马