- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我更改 Culture 值 x 次,当用户尝试退出时,FormClosing 方法将被触发 x 次。
这是我的 FormClosing 事件:
private void FrmParent_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show(this, Properties.Resources.msgExit, this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
e.Cancel = true;
}
这是我的组合框值更改事件:
void cbCulture_ToolValueChanged(object sender, ToolEventArgs e)
{
ComboBoxTool cbCulture = (ComboBoxTool)sender;
var culture = cbCulture.Value.ToString();
FormHelpers.SetCulture(culture);
this.Controls.Clear();
this.InitializeComponent();
InitForm();
}
我必须清理并初始化控件以将 UI 更改为新区域性,但是这样做我是否在 InitializeComponent() 中多次分配 FormClosing 事件?我怎样才能避免这种行为?
最佳答案
是因为InitializeComponent
,在那个方法forms design mode
properties/events
设置的。所以每次它都会添加一个 FormClosing
event
。为避免这种情况,请在 this.InitializeComponent();
this.FormClosing -= new System.Windows.Forms.FormClosingEventHandler(this.FrmParent_FormClosing);
注意:它只解决FormClosing
事件问题
关于c# - FormClosing 事件被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42001948/
我正在开发一个 C# 应用我需要在用户关闭表单之前进行一些验证。 我尝试使用 FormClosing 事件,但没有成功,后来我用了FormClosed事件,但是一样。 问题是,当我单击“关闭按钮”(在
在 myForm_FormClosing 之后是否有任何机会调用 timer_Tick在下面的代码中。 如果有机会:在 myForm_FormClosing 中调用 timer.Stop() 是否足以
我有一个组合框来设置用户文化: 如果我更改 Culture 值 x 次,当用户尝试退出时,FormClosing 方法将被触发 x 次。 这是我的 FormClosing 事件: privat
我的电脑有一个备用电源,它与电脑和墙壁串联连接。当我从墙上拔下电源线时,备用电源会在 2-5 分钟后关闭计算机。正是在这段时间里,我想使用以下代码将数据写入文件: private void Form1
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我尝试调用 FormClose 方法,但尝试时其参数出现问题: FormName.FormClose(nil, CaFree); 通常,我可以使用 nil 或 sender as TOBject 来调
当 FormClosing 中抛出异常时,我无法使用正常的 try/catch 捕获它 - 为什么不呢? 例子: public partial class Form2 : Form {
我有两个表单并将它们链接起来,这样当第二个表单关闭时,第一个表单也会关闭(使用 FormClosing 方法)。 问题是,当我想隐藏第二个表单时,它会自动关闭第一个。有没有一种方法可以在不实际调用 F
我试图在关闭菜单表单时关闭我的应用程序。这是我的代码: private void frmMenu_FormClosing(object sender, FormClosingEventArgs e)
我从主窗体中打开了一个子窗体,如下所示: var cf = new ChildForm { Owner = this }; cf.Show(); 然后子窗体在另一个线程上进行一些绘制。 当用户试图关闭
我的主窗体上有一个 ToolStripButton 并附加了一个单击事件,单击它会打开一个对话框并将 toolStripButton 的 Checked 状态设置为“true”。在通过上述单击打开的窗
我想在程序中的 Form 关闭时收到通知,以便我可以保存其子控件的状态,然后在下次打开该窗体时恢复这些控件状态。我将用于保存控件状态的代码放在窗体的 FormClosing 方法中。但是,如果关闭主窗
我有一个 MainForm。我可以使用关闭按钮(右上角)或单击菜单项 miExit 来关闭它。 我的问题是当我单击 miExit 并回答“确定”时,它显示消息框 TWICE。我该如何解决? (我明白为
我有以下代码: private void form1_closing(object sender, FormClosingEventArgs e) { e.Cancel = true;
我有一个简单的基于表单的 .NET 应用程序。在此,我捕获 FormClosing 事件以防止关闭应用程序,而是将其最小化。该应用程序应始终打开。这是我使用的代码: private void Brow
我遇到了一个问题,我无法等待 FormClosing 事件中的异步函数,该函数将确定表单关闭是否应该继续。我创建了一个简单的示例,如果您关闭而不保存(很像记事本或 Microsoft Word),它会
我有一个简单的 Windows 窗体,它在运行时托管属性控件。当用户单击关闭 [X] 时,我希望保持窗口及其内容处于事件状态,而不是通过处理 FormClosing 事件、取消事件并简单地隐藏表单来杀
在 Delphi 7 中,我有一个 TMainForm.FormClose 过程,旨在在程序退出时写出一些状态。这在手动关闭程序时效果很好。但是,我发现如果程序被 Windows“强制”退出(例如在
这个问题可能看起来像重复,但我在测试我的程序时遇到了这个问题,我对你如何解决它感到有点困惑。 我有一个 winform,它有一个表单关闭事件。在这种情况下,我会弹出一个消息框,询问用户“你确定要关闭窗
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _ Handles Me.Load, Me.For
我是一名优秀的程序员,十分优秀!