WinForm中主页面和Dialog页面通信

实现主页和Dialog通信的方法有很多,这里为了提高通用性使用委托来实现,开发和测试是在Wince上使用精简版的Framework开发,在普通Winform开发上也应该能够使用

为了实现主页和弹出也通信,只需要将主页中的对页面的控制方法委托传递给Dialog页面,在Dialog中根据用户的操作调用委托给主页面传值

具体代码实现为

主页面:

        private void button4_Click(object sender, EventArgs e)
{
Dialog dialog = new Dialog(new Action<int>((int result) =>
{
if (result == 0)
{
textBox1.Text = "成功";
}
else
{
textBox1.Text = "失败";
}
}));
dialog.ShowDialog();
}

Dialog:

    public partial class Dialog : Form
{
private Action<int> ReturnResult;
public Dialog()
{
InitializeComponent();
//省略代码
}
public Dialog(Action<int> returnResult):this()
{
this.ReturnResult = returnResult;
}
private void AccessServer()
{
//省略代码
try
{
//省略代码
CloseWindows();
}
catch {
//省略代码
}
}
private void button1_Click(object sender, EventArgs e)
{
ReturnResult(1);
this.Close();
}
private void CloseWindows()
{
ReturnResult(0);
this.Close();
}
}



posted @ 2011-10-28 17:34  wangking1029  阅读(342)  评论(0编辑  收藏  举报