在我的应用程序中,ShowDialog()
完成一些工作后调用自定义表单的方法。问题是,如果用户在我的应用程序工作时切换到另一个应用程序,对话框会将焦点转移到该应用程序上,这可能会导致不可预知的行为。预期的行为将是在我的应用程序前台显示的对话框,但不在另一个应用程序的顶部,并且让我的应用程序的任务栏项目闪烁。
有没有办法防止该ShowDialog()
方法窃取焦点?还是我应该使用另一种方法?
使用 Form.ShowWithoutActivation 属性(在您的类中覆盖它以返回 true)。这样你仍然可以使用 ShowDialog()。
在C#中,您使用ShowDialog()来显示stealing focus
您所说的表单。和Show()在不窃取焦点的情况下显示。我不确定它在 VB.NET 中是否相同。
如果你真的想要这个,你可能必须使用 Show。在表格上保留您自己的财产
DialogResult 结果;
可能默认为取消,因此如果表单关闭,它将被视为取消。然后你只需要在用户点击确定时进行设置。