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

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, // 设置按钮的对话框结果为 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 {
     //点击取消按钮触发的事件
 }


http://www.kler.cn/a/280295.html

相关文章:

  • [Linux][软件]CentOS 系统部署 RabbitMQ
  • 代码随想录算法训练营第二十五天(回溯 四)
  • 【文心智能体】通过低代码工作流编排创建应用《挑战奥运问答拿奖牌》
  • Leetcode面试经典150题-72.编辑距离
  • 基于Swagger自动生成离线API文档(Word、Markdown文档)
  • 【面试】jvm静态变量和局部变量对比
  • 回车键实现登录
  • Openai API + langchain 分析小型pdf文档
  • Tomcat的配置文件中有哪些关键的配置项,它们分别有什么作用?
  • 【搜索引擎】ElasticSearch 7.x版本
  • 电单车TCP通讯协议对接phpworkermanHikversion充电桩上位机通讯协议
  • 【开源分享】在线客服系统PHP源码 带搭建教程
  • 【测试】JMeter从入门到进阶
  • 关于Avalonia程序在Linux上运行画面不显示的问题详解
  • 阅读笔记5:董超底层视觉之美|时空的交错与融合——论视频超分辨率
  • 2024年新算法-基于SBOA-BP混合神经网络的数据预测(Python代码实现)
  • 本地生活服务商系统如何利用本地推获得更多曝光?
  • 排序补充之快排的三路划分法
  • Shell 脚本开发学习
  • SQL函数