c#做的winform程序,如何在一个form中调用上一个form上的控件的值啊?

解决方案 »

  1.   

    将另一个form中的控件定义为公共静态的
      

  2.   

    不行啊!能不能具体点,我用的控件是DateTimePicker
      

  3.   

    有2种方式
    1:用属性传值
    2:用构造函数传值我这里说说构造函数传值
    在你的第一个窗体中: 
    FromB fb=new FromB(this.DateTimePicker)
    fb.ShowDialog();
    在你的子窗体中:(改写构造函数)DateTimePicker dtp;
    public FormB(DateTimePicker DTP)
    {
    // dtp=DTP;
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();//
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    }这样就可以在窗体b中使用dtp了,就获得了a中的datetimepack的值
      

  4.   

    1. Form1的dateTimePicker1继续保持private.
    加个属性
    public  DateTime MyValue
    {
      get
      {
        return dateTimePicker1.Value;
      }
    }2. Form2加个私有引用变量用于引用Form1对象,并更加构造函数.
    private Form1 frm1;
    public Form2(Form1 frm1)
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();//
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    this.frm1 = frm1;
    }3.
    Form1上有个button1用于弹出Form2
    private void button1_Click(object sender, System.EventArgs e)
    {
      Form2 frm2 = new Form2(this);
      frm2.Show();
    }4.在Form2可以通过以下语句取得Form1上dateTimePicker1的值
    frm1.MyValue.ToString();
      

  5.   

    @ LZ
    我用了4楼和6楼哥们说的方法是可以解决问题的啊?
    你再试一下首先,在Form1里将参数传给Form2
    Form2 form2 = new Form2(this.dateTimePicker);//this指Form1,dateTimePicker指DateTimePicker实例然后,修改Form2的构造函数
    public Form2(DateTimePicker dateTimePicker)
    {
    //构造函数代码
    }