Tag: formclosing

DoEvents()在FormClosing中也是邪恶的吗?

在我建议使用的另一个问题上 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { while (processingLock) Application.DoEvents(); } 在FormClosing事件中(在完成冗长的计算后,processingLock立即变为false)。 它应该有助于使应用程序以有序的方式关闭,并且原始海报不使用线程。 根据我建议的答案,有人评论DoEvents永远不会好,提供这个链接: 使用Application.DoEvents() 我读过并且(我认为)理解了这个问题。 在我看来(仍然是noobish)如果我在FormClosing事件中使用如上所述的DoEvents,则没有发生混淆事件的风险 – 如果没有办法取消用户的结束(比如设置e.Cancel = true) 。 我的问题:这是一个有效的方法,以确保应用程序终止良好,如果没有,为什么?

如何防止在C#中关闭HIDDEN表单

我希望在某些情况下防止关闭表单。 我知道OnFormClosing的用法,但是当隐藏表单(Visible == false)时,不会调用OnFormClosing方法。 在这种情况下,有没有办法拦截表格结束? 编辑(更多细节):表单是MdiParent中的子表单,应该在后台保持不可见并等待来自另一个线程的调用(通过Invoke)。 当用户“断开连接”时,MdiParent关闭所有子窗口,在这种情况下,上面的表单应保持打开状态,但不可见并仍在等待呼叫。 当MidParent本身关闭时,所有表格都应该关闭。 Edit2(没有解决方案?):似乎没有解决方案。 我现在的解决方法是在MdiParent代码中排除我的不可关闭的表单,该表单将关闭所有其他表单。

在封闭事件中的“e.Cancel”

使用FormClosing事件时,为什么代码e.Cancel = true; work,但是new CancelEventArgs().Cancel = true; 不起作用? private void Form1_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; new CancelEventArgs().Cancel = true; }

C#MDI父级检测MDI Child何时关闭?

我试图在MDI父级上检测到我的MDI子窗体何时关闭,并做出相应的反应。 在MDI子项关闭之前,MDI父母不应该做任何事情。 这是我的代码,我不确定我做错了什么,但我添加的表单关闭事件方法永远不会被调用… 如果不明显,则以下代码位于MDI父类中。 private void keyValidation() { if (Properties.Settings.Default.Unlock == true) return; else { menu.Enabled = false; statusStrip.Enabled = false; ValidationForm vf = new ValidationForm(); vf.MdiParent = this; vf.Show(); vf.FormClosed += new FormClosedEventHandler(validationForm_FormClosed); } } void validationForm_FormClosed(object sender, FormClosedEventArgs e) { MessageBox.Show(“Got here”); if (Properties.Settings.Default.Unlock == true) { menu.Enabled = true; statusStrip.Enabled = true; […]

表单关闭时的MessageBox

我在关闭应用程序之前使用此代码进行提问,但它无法正常工作。 我的代码如下。 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult dlgresult = MessageBox.Show(“Exit or no?”, “My First Application”, MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dlgresult == DialogResult.No) { e.Cancel = true; } else { Application.Exit(); } }

如何防止表单对象在关闭时处理?

我使用的是MDIParent表格。 当我关闭它的孩子时,孩子的对象处理。 有没有办法将子可见性设置为false而不是处置?

等待FormClosing事件中的异步函数

我遇到了一个问题,我无法等待FormClosing事件中的异步函数,这将决定表单关闭是否应该继续。 我创建了一个简单的示例,如果您在未保存的情况下关闭,则会提示您保存未保存的更改(非常类似于记事本或Microsoft Word)。 我遇到的问题是,当我等待异步保存function时,它会在保存function完成之前关闭表单,然后在完成后返回结束function并尝试继续。 我唯一的解决方案是在调用SaveAsync之前取消关闭事件,然后如果保存成功,它将调用form.Close()函数。 我希望有一种更清洁的方式来处理这种情况。 要复制方案,请创建一个带有文本框(txtValue),复选框(cbFail)和按钮(btnSave)的表单。 这是表单的代码。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TestZ { public partial class Form1 : Form { string cleanValue = “”; public Form1() { InitializeComponent(); } public bool HasChanges() { return (txtValue.Text != cleanValue); } public […]

如何阻止用户关闭我的C#应用​​程序?

如何在C#中使用unclosed应用程序? 我想禁用表单的“X”按钮,并阻止Windows任务管理器关闭它。 我知道阻止表单关闭的一种方法是处理FormClosing事件,但是如何阻止任务管理器关闭它?