哭佛林

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 1.       UI设计
    
主窗体FrmMain:
        
两个文本框:textBox1、textBox2       存储FrmMain中的参数
        
一个按钮:button1                    启动子窗体
    
子窗体FrmChild:
        
两个文本框:textBox1、textBox2       存储FrmChild中的参数
        
一个按钮:button1                    关闭子窗体,返回FrmMain
  2.      DeliveryParamsArgs类:存储从子窗体FrmChild返回到父窗体FrmMain中的参数
      

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace DeliveryParam
{
    
public class DeliveryParamsArgs : EventArgs
{
        
//存储参数的各种数据结构,可以自由扩展
        private ArrayList paramsList = null;
        
private IDictionary<String, Object> paramsDictionary = null;

        
public ArrayList ParamsList
        
{
            
get return paramsList; }
            
set { paramsList = value; }
        }


        
public IDictionary<String, Object> ParamsDictionary
        
{
            
get return paramsDictionary; }
            
set { paramsDictionary = value; }
        }


        
public DeliveryParamsArgs()
        
{
            paramsList 
= new ArrayList();
            paramsDictionary 
= new Dictionary<String, Object>();
        }

    }

}

 

3.      主窗体代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DeliveryParam
{
    
public partial class FrmMain : Form
    
{
        
public FrmMain()
        
{
            InitializeComponent();
        }

        
private string m_parm1 = null;
        
private string m_parm2 = null;

        
private void FrmMain_Load(object sender, EventArgs e)
        
{
            
        }


        
private void button1_Click(object sender, EventArgs e)
        
{
            
this.m_parm1 = this.textBox1.Text.ToString();
            
this.m_parm2 = this.textBox2.Text.ToString();

            FrmChild child 
= new FrmChild();
            
            child.DeliveryList 
= new System.Collections.ArrayList();
            
//将FrmMain的参数传递给FrmChild
            child.DeliveryList.Add(this.m_parm1);
            child.DeliveryList.Add(
this.m_parm2);

            child.DeliveryParamsEvent 
+= new FrmChild.DeliveryParamsHandler(child_DeliveryParamsEvent);//绑定事件
            child.Show();
        }


        
void child_DeliveryParamsEvent(DeliveryParamsArgs e)
        
{
            
this.textBox1.Text = e.ParamsList[0].ToString();
            
this.textBox2.Text = e.ParamsList[1].ToString();
        }

    }

}

 

4.      子窗体代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace DeliveryParam
{
    
public partial class FrmChild : Form
    
{
        
public FrmChild()
        
{
            InitializeComponent();
            
        }


        
//窗体FrmMain中传递过了的参数集合
        private ArrayList deliveryList = null;

        
public ArrayList DeliveryList
        
{
            
get return deliveryList; }
            
set { deliveryList = value; }
        }


        
//窗体Frmchild中需要传递给FrmMain的参数
        private string c_parm1 = null;
        
private string c_parm2 = null;

        
private void FrmChild_Load(object sender, EventArgs e)
        
{
            
this.textBox1.Text = deliveryList[0].ToString();
            
this.textBox2.Text = deliveryList[1].ToString();
        }


        
public delegate void DeliveryParamsHandler(DeliveryParamsArgs e);//定义委托   
        public event DeliveryParamsHandler DeliveryParamsEvent;//定义事件

        
private void button1_Click(object sender, EventArgs e)
        
{
            DeliveryParamsArgs arrayParams 
= new DeliveryParamsArgs();
            
this.c_parm1 = this.textBox1.Text.ToString();
            
this.c_parm2 = this.textBox2.Text.ToString();

            arrayParams.ParamsList.Add(
this.c_parm1);
            arrayParams.ParamsList.Add(
this.c_parm2);

            arrayParams.ParamsDictionary.Add(
"c_parm1"this.c_parm1);
            arrayParams.ParamsDictionary.Add(
"c_parm2"this.c_parm2);

            
//激发事件,写在你想要的地方   
            if (DeliveryParamsEvent != null)
            
{
                DeliveryParamsEvent(arrayParams);
            }

            
this.Close();
            
this.Dispose();
        }

    }

}


WinForm窗体间参数传递Code下载

posted on 2007-12-18 10:05  哭佛林<Kufolin>  阅读(2850)  评论(0)    收藏  举报