gpt4 book ai didi

c# - 如何取消winform按钮的点击事件?

转载 作者:太空狗 更新时间:2023-10-29 23:07:24 27 4
gpt4 key购买 nike

我有一个继承自 System.Windows.Forms.Button 的自定义按钮类。

我想在我的 winform 项目中使用这个按钮。

这个类叫做“ConfirmButton”,它显示带有 Yes 或 No 的确认消息。

但问题是当用户选择“否”并显示确认消息时,我不知道如何停止点击事件。

这是我的类(class)源。

using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace ConfirmControlTest
{
public partial class ConfirmButton : System.Windows.Forms.Button
{
public Button()
{
InitializeComponent();

this.Click += Button_Click;
}

void Button_Click(object sender, EventArgs e)
{
DialogResult res = MessageBox.Show("Would you like to run the command?"
, "Confirm"
, MessageBoxButtons.YesNo
);
if (res == System.Windows.Forms.DialogResult.No)
{
// I have to cancel button click event here

}
}
}
}

如果用户从确认消息中选择否,则不应再触发按钮单击事件。

最佳答案

您需要覆盖点击事件。

class ConfirmButton:Button
{
public ConfirmButton()
{

}

protected override void OnClick(EventArgs e)
{
DialogResult res = MessageBox.Show("Would you like to run the command?", "Confirm", MessageBoxButtons.YesNo
);
if (res == System.Windows.Forms.DialogResult.No)
{
return;
}
base.OnClick(e);
}
}

关于c# - 如何取消winform按钮的点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24899727/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com