Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 处理Visual Studio的FormClose事件(确认关闭)_C#_Vsix - Fatal编程技术网

C# 处理Visual Studio的FormClose事件(确认关闭)

C# 处理Visual Studio的FormClose事件(确认关闭),c#,vsix,C#,Vsix,我需要编写一个应用程序来确认Visual Studio的关闭?我认为,可以使用WinForms中的FormClosing事件,也可以取消关闭 主要需要防止Visual Studio 2017意外退出。但VS 2015+具有Metro用户界面。从标题栏右键单击菜单中删除“关闭”菜单,但无法禁用“右上关闭”按钮 编辑 为什么需要这样做:通常我有许多打开的窗口。我使用WhatsApp桌面,此应用程序未全屏启动。但它看起来是最大化的。当我试图通过将指针移动到屏幕的右上方(在我的右显示器上,甚至没有检查窗

我需要编写一个应用程序来确认Visual Studio的关闭?我认为,可以使用WinForms中的FormClosing事件,也可以取消关闭

主要需要防止Visual Studio 2017意外退出。但VS 2015+具有Metro用户界面。从标题栏右键单击菜单中删除“关闭”菜单,但无法禁用“右上关闭”按钮

编辑

为什么需要这样做:通常我有许多打开的窗口。我使用WhatsApp桌面,此应用程序未全屏启动。但它看起来是最大化的。当我试图通过将指针移动到屏幕的右上方(在我的右显示器上,甚至没有检查窗口是否最大化)来快速关闭它时,我实际上会单击该窗口下的应用程序。主要是VisualStudio。最终VS关闭。我正在处理一个非常大的解决方案,因此打开或关闭该解决方案需要很长时间。由于VS不是开源的,我需要以某种方式确认退出。这很烦人,而且经常发生(一天2-3次)

还要注意的是,我不是唯一一个需要这个IDE的开发人员,其他IDE已经有了这样的选项


引用强大的陈雷蒙:

可用性研究表明,用户确实不喜欢禁用关闭按钮。这让他们感到被困和不舒服。这就是为什么标准Windows向导没有为您提供禁用关闭按钮的方法的原因。用户应该总是有出路的

我假设这是一个你不关心的问题,你只想得到一个解决方案,他想禁用关闭按钮/菜单:

void DisableCloseButton(HWND hwnd)
{
 EnableMenuItem(GetSystemMenu(hwnd, FALSE), SC_CLOSE,
                MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
}

void EnableCloseButton(HWND hwnd)
{
 EnableMenuItem(GetSystemMenu(hwnd, FALSE), SC_CLOSE,
                MF_BYCOMMAND | MF_ENABLED);
}
根据应用程序的不同,这可能不够,在这些情况下,您需要在应用程序中编写代码并对窗口进行子类化,以便处理
WM\u CLOSE

创建的简单(一行)扩展。 应该这样做:关闭Visual Studio时提示:)

只需对包使用“QueryClose”即可弹出提示:


如果可行,请给我5颗星^ ^

如何禁用任务管理器的结束任务功能?或者可以杀死任意进程的命令行工具。用户应该如何关闭应用程序?请确认。你可以检查Firefox阻止关闭插件。我不明白为什么有人会想要这样的东西。我怀疑他的解决方案是错误的,无论在Visual Studio中是什么,您都可以编写一个VSIX扩展来处理OnQueryCloseSolution,显示messagebox,并相应地执行操作,返回false或true(取消或否)。我是用户,我不想禁用close。我只想确认关闭并防止应用程序意外退出。最后一句是我需要的:)。我会用谷歌搜索的。