0

在离开(不关闭 - 将焦点设置到另一个表单)非模态表单时显示保存确认消息的最佳方式是什么?

用户可以选择

  • 是(保存更改并将焦点设置到 targetform)
  • 否(回滚并将焦点设置到目标表单)
  • 取消(保持活动形式 - 取消将焦点设置为目标形式)

我找不到阻止将焦点设置到另一个表单的解决方案。类似于关闭事件,我可以在其中使用 FormClosingEventArgs.Cancel 属性。

在我的情况下,使用模态形式是不可接受的。

提前致谢

4

2 回答 2

0

最好的方法是覆盖 OnLostFocus 事件。这是代码:

protected override void OnLostFocus(EventArgs e) { 
    base.OnLostFocus(e); 
    this.Focus(); 
}
于 2012-10-02T12:52:18.043 回答
0

首先,您可以使用该Deactivated事件来检测表单何时失去焦点。然后,如果用户想留在失去焦点的表单中,您可以调用该BringToFront方法再次将表单设置为活动状态。

您不能阻止用户激活另一个表单,但您可以尝试(使用上述方法)将激活更改回当前表单。

于 2012-10-02T12:37:40.563 回答