实现效果:
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, // 设置按钮的对话框结果为 OK Location = new System.Drawing.Point(20, 80), // 设置按钮位置 Size = new System.Drawing.Size(100, 40) // 设置按钮大小 }; // 为第一个按钮添加点击事件处理程序 btnOption1.Click += (sender, e) => { DialogResult1 = DialogResult.OK; // 设置对话框结果为 OK Close(); // 关闭对话框 }; // 初始化第二个选项按钮并设置其属性 btnOption2 = new Button { Text = button2Text, // 设置按钮文本 DialogResult = DialogResult.Cancel, // 设置按钮的对话框结果为 Cancel Location = new System.Drawing.Point(160, 80), // 设置按钮位置 Size = new System.Drawing.Size(100, 40) // 设置按钮大小 }; // 为第二个按钮添加点击事件处理程序 btnOption2.Click += (sender, e) => { DialogResult1 = DialogResult.Cancel; // 设置对话框结果为 Cancel Close(); // 关闭对话框 }; // 将控件添加到表单中 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 { //点击取消按钮触发的事件 }