1.新建一个MyMessageBoxForm窗体,在界面中添加确认和取消两个按钮。
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class MyMessageBoxForm : Form
{
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr GetActiveWindow();//获取当前窗体的活动状态
String msg = "";
public delegate void TextEventHandler(string strText);
public TextEventHandler TextHandler;
public MyMessageBoxForm(String msg)
{
InitializeComponent();
// 设置窗体为无边框样式
this.FormBorderStyle = FormBorderStyle.None;
// 设置透明键颜色(这里使用洋红色,你可以选择任何不常用的颜色)
this.BackColor = Color.Magenta;
this.TransparencyKey = Color.Magenta;
this.msg = msg;
}
private void MyMessageBoxForm_Load(object sender, EventArgs e)
{
//要显示的消息
Console.WriteLine(msg);
}
private void btn_ensure_Click(object sender, EventArgs e)
{
if (null != TextHandler)
{
//要返回的结果数据
String rsultData = "我是结果";
TextHandler.Invoke(rsultData);
DialogResult = DialogResult.OK;
}
}
private void btn_cancl_Click(object sender, EventArgs e)
{
TextHandler.Invoke(null);
DialogResult = DialogResult.Cancel;
}
}
public static class MyMessageBoxDialog
{
public static DialogResult Show(String message, out string strText)
{
string strTemp = string.Empty;
MyMessageBoxForm inputDialog = new MyMessageBoxForm(message);
inputDialog.TextHandler = (str) => { strTemp = str; };
DialogResult result = inputDialog.ShowDialog();
strText = strTemp;
return result;
}
}
}
2.调用
string result = string.Empty;
DialogResult dr = MyMessageBoxDialog.Show("aaaaa", out result);
if (dr == DialogResult.OK)
{
Console.WriteLine("DialogResult"+ dr);
Console.WriteLine("result = " + result);
}
else {
Console.WriteLine("DialogResult" + dr);
}
