问题标签 [formclosing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 检查 C# WinForm 是否已关闭
我在 C# Windows 窗体上使用 FormClosing 事件要求用户在退出前确认。我只希望在用户使用表单窗口一角的红十字专门关闭表单时显示此消息。当我手动关闭或隐藏表单时,我不希望显示确认消息(例如手动调用 form.Close())。
是否可以检查用户是否按下了红十字?
谢谢。
vb.net - Vb.net 中的 Application.Exit() 和 FormClosing 事件
我有一个在系统托盘图标中运行的窗体应用程序。如果用户按下窗体的 X 按钮,则会显示一个消息框,其中包含是和否(是 -> 关闭窗体---否 -> 保持窗体运行在系统托盘图标中)。我正在考虑防止当用户在已经有一个实例运行时打开另一个应用程序实例时出现这种情况,所以我使用了以下代码:
问题是,当我想对此进行测试时,会显示消息,但在我按下确定后,会出现一个新的消息框(来自 Private Sub Form_FormClosing 的那个)。如果我选择否,我将不得不实例运行!我已阅读 Application.Exit 触发 Form_FormClosing 事件。
是否有可能取消 Form_FormClosing 事件的触发,或者我做错了什么?
'这是表格关闭程序
PS:我不是程序员,所以请不要对我苛刻:)
c# - 如何绕过 FormClosing 事件
我有以下代码:
我想要一个关闭表单的按钮,而不触发此事件。我该怎么做呢?
按钮的代码:
我希望上面的按钮关闭表单而不是隐藏它。
c# - 为什么取消不取消,返回不返回,除非他们组队?
使用此代码:
...如果e.Cancel = true被注释掉,表单无论如何都会关闭。
...如果return被注释掉,其余代码(关闭和处置)运行(因此,如果我尝试保存更改,我会收到连接未打开的错误消息)。
因此,我必须同时执行(取消和返回)以使代码能够像我认为的那样与任何一个一起工作。
这是正常的/如预期的那样吗?
c# - FormClosing() 事件加载了两次
我想在关闭表单之前显示一个 MessageBox 以确认退出。因此,创建了一个 FormClosing 事件。
我的 MessageBox 显示了两次。调试工具显示代码以某种方式通过 FormClosing() 两次。即使我在上面的 FormClosing() 中没有任何内容,也会发生这种情况。我确实在我的整个代码中搜索了 FormClosing() ,并且只有一个地方可以订阅它。我在另外两个项目中有相同的 FormClosing() ,但这并没有发生。谁能给我指点?这对我来说没有任何意义。
c# - 如何确保在关闭程序之前保存所有更改?
我有一个控制雷达干扰器的大型 C# 项目。加载项目后,我们创建了 3 个线程,每个线程都打开了我们所谓的“主窗体”(关闭其中一个主窗体将关闭程序。
我目前遇到的问题是,在确保所有其他表单已保存并正确关闭之前,我可以关闭其中一个主表单。完成这项任务的最佳方法是什么?我目前的建议是保留一个全局堆栈来跟踪所有打开的表单,并且在关闭主窗体之前,它会尝试保存并关闭堆栈中的所有表单。
c# - 如何检测父表单取消 FormClosing 事件?
我从主表单打开了一个子表单,如下所示:
然后子窗体在另一个线程上进行一些绘图。
当用户试图关闭主窗体时——如果子窗体已打开——则FormClosing
首先触发一个事件ChildForm
,然后在主窗体中引发相同的事件。在发生FormClosing
事件时,子窗体停止其绘图线程。
当主窗体包含未保存的数据时,用户可能会尝试关闭主窗体。然后,主窗体的事件处理程序会向它们显示警告“数据未保存。取消关闭? ”。FormClosing
然后他们可以取消保存(即主窗体的事件处理程序Cancel
在对象上设置标志)。FormClosingEventArgs
FormClosing
但是,到那时,子窗体的FormClosing
事件已经被引发,并且它将停止其绘图线程。子窗体不知道它现在应该继续绘制(好像什么都没发生一样)。
是否可以从子窗体中检测到FormClosing
事件已被主窗体取消?当用户被要求在主窗体中保存数据时,我仍然想停止重绘线程。
.net - 如何防止在 FormClosing 事件中关闭和处置 Winform?
这个问题似乎是重复的,但我在测试程序时遇到了这个问题,我对你如何解决它感到有点困惑。
我有一个 winform,它有一个表单关闭事件。在这种情况下,我会弹出一个消息框,询问用户“你确定要关闭窗口吗?”。如果他们按下是按钮,应用程序将关闭窗口并阻止它按预期进行处理。所以,我可以再次打开它。但是,如果他们没有按任何按钮,它仍然会关闭窗口,但现在窗口已被释放。因此,当我尝试再次打开它时,它引发了一个异常,“无法访问已处置的对象”。当按下 No 按钮时,我希望 winform 保持打开状态而不被处理。
这是我的代码:
我想既然你必须设置 e.Cancel = true 来关闭窗口并告诉它隐藏,做相反的事情(e.Cancel = false 并且不隐藏)将阻止 winform 关闭和被处理。
你如何解决这个问题?
预先感谢,
c# - FormClosing 事件中的 Application.DoEvents
我已经实现了我的习惯ThreadManager
,在我的测试过程中它一直在完美地工作。当用户想要关闭应用程序时,关闭会暂停,直到所有线程退出或他们选择不等待就结束应用程序(经过 30 秒后)。
我需要澄清的是,如果使用Application.DoEvents()
可能会很危险FormClosing
。我应该使用它还是找到另一种等待线程退出的方法?
windows - .NET 取消关闭窗体可防止它在 Windows 关闭时关闭
你好!
我在上面使用这个简单的代码。但是,如果在我关闭计算机时应用程序处于打开状态,Windows 会等待它关闭或希望我终止它以继续。我找不到知道用户是试图关闭应用程序还是 Windows 是的方法。我所知道的是,在这两种情况下,Windows 都会向窗口发送关闭消息,这并没有真正帮助我。我可以想到其他一些方法,但应该有一种“清晰”的认识方式。
提前致谢 :)