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