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

时间:2022-08-30 21:31:46
c#做的winform程序,如何在一个form中调用上一个form上的控件的值啊?

10 个解决方案

#1


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

#2


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

#3


还是传参数比较好

#4


有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的值

#5


该怎么操作呢?我是新手,麻烦大哥指教啊!先谢了。

#6


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();

#7


发生错误了:
"应用程序发生了未处理得异常。。。
为将对象引用设置道对象的实例。。。"
怎么处理啊?

#8


恩,感谢LZ和4楼、6楼的哥们!!!

我正找如何解决这个问题的答案呢,呵呵……太好了!!!

#9


@ LZ
我用了4楼和6楼哥们说的方法是可以解决问题的啊?
你再试一下

首先,在Form1里将参数传给Form2
Form2 form2 = new Form2(this.dateTimePicker);//this指Form1,dateTimePicker指DateTimePicker实例

然后,修改Form2的构造函数
public Form2(DateTimePicker dateTimePicker)
{
//构造函数代码
}

#10


搞定了!谢谢!

#1


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

#2


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

#3


还是传参数比较好

#4


有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的值

#5


该怎么操作呢?我是新手,麻烦大哥指教啊!先谢了。

#6


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();

#7


发生错误了:
"应用程序发生了未处理得异常。。。
为将对象引用设置道对象的实例。。。"
怎么处理啊?

#8


恩,感谢LZ和4楼、6楼的哥们!!!

我正找如何解决这个问题的答案呢,呵呵……太好了!!!

#9


@ LZ
我用了4楼和6楼哥们说的方法是可以解决问题的啊?
你再试一下

首先,在Form1里将参数传给Form2
Form2 form2 = new Form2(this.dateTimePicker);//this指Form1,dateTimePicker指DateTimePicker实例

然后,修改Form2的构造函数
public Form2(DateTimePicker dateTimePicker)
{
//构造函数代码
}

#10


搞定了!谢谢!