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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lucky.帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值