平时很少接触WinForm方面的东西,今天花了快两个小时才搞明白窗体间是怎么传参数的。

问题:有Form1和Form2两个窗体,希望点Form1上的button1可以弹出Form2作为对话框,并把Form1上的Control1控件整体传给Form2。

解决方法:
第一步:Form1的button1_Click事件中添加代码:
Form2 form2 = new Form2(this.control1);
form2.ShowDialog();

第二步:Form2中定义Control1实例,代码:
private Control1 control1;

第三步:修改Form2构造函数,代码:
public Form2(Control1 control1)
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
this.control1 = control1;
}

OK,问题解决!

新的问题:
1、不知道是不是还有更好的解决办法???
2、ShowDialog()方法生成有模式的对话框,但这和真正意义上的对话框仍有差别(例如:在任务栏上仍显示窗体标签,而.NET Framework默认对话框不会出现这个东西),那么如何自定义一个和.NET Framework默认对话框类似的对话框呢???

Update@2005-08-05 16:27: Pharaoh帮忙将问题2解决!
posted on 2005-08-05 11:16  YuL  阅读(1937)  评论(3编辑  收藏  举报