gpt4 book ai didi

c# - 在 C# 中编写当单击消息框上的 X 时的代码

转载 作者:行者123 更新时间:2023-12-02 17:18:35 25 4
gpt4 key购买 nike

我在 Visual Studio 2017 中用 C# 编写应用程序。我使用的是 Windows 窗体应用程序 (.NET Framework)。我弹出一个带有默认设置的消息框(只有“确定”按钮和右上角的“X”)。当用户选择“确定”时,剩余的代码将继续。我想编写单独的代码,以便在用户选择 X 关闭消息框时运行。如何判断用户是否单击了 X 来关闭消息框?

我尝试过使用

DialogResult result = MessageBox.Show("Message here");
if(result != DialogResult.OK){
//Do stuff here
}

但即使按下 X,结果仍然返回为 Dialog.OK。

我应该做什么?

更新

这段代码工作正常

DialogResult result = MessageBox.Show("Message here", "MessageBoxTitle", MessageBoxButtons.OKCancel);
if(result != DialogResult.OK){
//Do stuff here
}

但是,我的消息框现在有一个不必要的“取消”按钮。有没有办法仅通过 MessageBoxButtons.OK 设置来实现此目的,以避免使用“取消”按钮?

最佳答案

这是底层 Win32 MessageBox API 的限制。

API 不提供指定关闭框如何单独工作的方法。单击“关闭”框(或按 Escape)总是返回“取消”按钮的 ID(如果有),或者返回默认按钮(如果没有)。

不幸的是,不,您不能尝试通过将默认按钮设置为不存在的按钮来进行作弊 - 如果您这样做,默认按钮将重置为现有按钮之一。

因此,如果您想以更复杂的方式处理“关闭”框,则必须创建自己的对话框,而不是让::MessageBox 为您做这件事。

关于c# - 在 C# 中编写当单击消息框上的 X 时的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59165403/

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