很久没写.NET程序了,最近公司要做一个.NET 桌面程序,于是我又开始写起来.NET程序…
实现效果
winform的MessageBox比较难看,自定义一个Dialog。在Dialog弹出后,操作对应的按钮,回调主窗体的指定的方法。
定义委托
public class ExitDialog
{
/// <summary>
///
/// </summary>
/// <param name="type">0 退出 1重新开始</param>
public delegate void OperatorTypeHandler(int type);
public OperatorTypeHandler OperatorTypeEvent;
}
父窗体
ExitDialog exitDialog = new ExitDialog();
public FrmMain()
{
InitializeComponent();
//委托实例化
exitDialog.OperatorTypeEvent = new ExitDialog.OperatorTypeHandler(AnswerOperatorHandler);
this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
}
/// <summary>
/// 退出OR重新开始
/// </summary>
/// <param name="type"></param>
protected void AnswerOperatorHandler(int type)
{
if (type == 0)
{
//TODO 子窗体回调后,可以在这做一些事情
}
else if(type==1)
{
//TODO 子窗体回调后,可以在这做一些事情
}
}
子窗体
private ExitDialog exitDialog;
//子窗体构造函数
public FrmExitDialog(ExitDialog dialog)
{
InitializeComponent();
exitDialog = dialog;
}
// 子窗体关闭事件,调用委托
private void btnExit_Click(object sender, EventArgs e)
{
if (exitDialog.OperatorTypeEvent != null)
exitDialog.OperatorTypeEvent(0);
this.Close();
}