C#WinFrom 中实现可自定义按钮和事件的消息提示框
实现效果:
public partial class CustomMessageBox : Form {// 声明按钮和标签控件private Button btnOption1;private Button btnOption2;private Label lblMessage;// 自定义属性用于获取对话框的结果public DialogResult DialogResult1 { get; private set; }// 构造函数,初始化自定义消息框public CustomMessageBox(string message, string button1Text, string button2Text){// 初始化消息标签并设置其属性lblMessage = new Label{Text = message, // 设置消息文本AutoSize = true, // 自动调整标签大小以适应文本Location = new System.Drawing.Point(20, 20), // 设置标签位置};// 初始化第一个选项按钮并设置其属性btnOption1 = new Button{Text = button1Text, // 设置按钮文本DialogResult = DialogResult.OK, // 设置按钮的对话框结果为 OKLocation = new System.Drawing.Point(20, 80), // 设置按钮位置Size = new System.Drawing.Size(100, 40) // 设置按钮大小};// 为第一个按钮添加点击事件处理程序btnOption1.Click += (sender, e) =>{DialogResult1 = DialogResult.OK; // 设置对话框结果为 OKClose(); // 关闭对话框};// 初始化第二个选项按钮并设置其属性btnOption2 = new Button{Text = button2Text, // 设置按钮文本DialogResult = DialogResult.Cancel, // 设置按钮的对话框结果为 CancelLocation = new System.Drawing.Point(160, 80), // 设置按钮位置Size = new System.Drawing.Size(100, 40) // 设置按钮大小};// 为第二个按钮添加点击事件处理程序btnOption2.Click += (sender, e) =>{DialogResult1 = DialogResult.Cancel; // 设置对话框结果为 CancelClose(); // 关闭对话框};// 将控件添加到表单中Controls.Add(lblMessage);Controls.Add(btnOption1);Controls.Add(btnOption2);// 设置对话框属性AcceptButton = btnOption1; // 设置接受按钮CancelButton = btnOption2; // 设置取消按钮// 设置对话框的其他属性Text = "提示!"; // 设置标题FormBorderStyle = FormBorderStyle.FixedDialog; // 设置边框样式StartPosition = FormStartPosition.CenterParent; // 设置启动位置ClientSize = new System.Drawing.Size(280, 180); // 设置客户区大小}// 静态方法用于显示对话框public static DialogResult Show(string message, string button1Text, string button2Text){using (var form = new CustomMessageBox(message, button1Text, button2Text)){return form.ShowDialog(); // 显示对话框并返回结果}} }
使用:
var result = CustomMessageBox.Show("需求数量已完成是否重置", "重置", "取消");if (result == DialogResult.OK){//点击重置按钮触发的事件}else {//点击取消按钮触发的事件}