当前位置: 首页 > news >正文

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 {//点击取消按钮触发的事件}


http://www.mrgr.cn/news/12525.html

相关文章:

  • 最佳外推发帖器推荐
  • Rust: Reading and Writing Files
  • Akka-路由策略
  • 求解器的学习记录
  • vue调用booststrap弹窗
  • Apache RocketMQ 批处理模型演进之路
  • Jackson 忽略注解 @JsonIgnore 不生效
  • ssrf,csrf漏洞复现
  • 蓝牙资讯|2024Q2全球个人智能音频市场出货量1.1亿部
  • 集合及数据结构第十节(下)————常用接口介绍、堆的应用和java对象的比较
  • 【Linux入门】shell基础篇——while循环与until循环
  • 简易的 Websocket + 心跳机制 + 尝试重连
  • 全国首个高速公路5G-A通感一体基站在宁开通测试
  • Mysql的命令大全
  • 【附源码】Python :三棱柱建模
  • JVM经典的垃圾收集器
  • 自动化编译项目:使用 Bash 脚本与 CMake
  • 游戏开发中的打砖块反弹(godot)
  • 自动化刷题小练习
  • pytorch Dataset类代码学习