对话框在Windows XP中失去焦点

时间:2010-12-03 18:58:07

标签: c# focus modal-dialog

我遇到了一个奇怪的问题。我有一个C#.NET 2.0应用程序和一个上下文菜单。右键单击应用程序时,将显示上下文菜单,菜单上的一个项目为“选项”。当您单击选项时,我有一个显示的OptionsDialog表单(使用ShowDialog()方法)。问题是,在Windows XP上,焦点不断消失。如果我点击选项表单,它的收益会集中一秒钟,但之后会再次丢失!我尝试了一切。在Deactivate事件中,我调用this.Focus()但这似乎没有什么区别。我也尝试将窗口放在最顶层,但仍然不起作用。

另一个奇怪的事情是这个问题似乎只发生在XP上。我尝试使用Vista和Windows 7,它完美无缺。 XP正在做一些奇怪的事情。有人对如何解决这个问题有任何想法吗?

2 个答案:

答案 0 :(得分:1)

这里的人似乎也有同样的问题:http://forums.devshed.com/c-programming-42/c-form-won-t-focus-on-control-535596.html

这有什么问题吗?如果您有一个默认按钮或控件,它是第一个在窗体启动时也被禁用的tabStop值,则可能是问题的原因。

检查表单上的所有已禁用控件,并确保已启用默认按钮和第一个制表符停止控件。 (提示:默认按钮在模态表单上通常应为“取消”,并且应始终启用。)

答案 1 :(得分:0)

如果你发现之后哪个窗口有焦点,也许它会告诉你一直在发生什么。

1997年的这个小型演示应用程序将为您提供帮助:http://www.microsoft.com/msj/0397/Win32/Win320397.aspx