强制使用.NET构建的桌面应用程序的焦点

时间:2010-07-30 18:20:44

标签: vb.net visual-studio-2008

我有一个我一直想强调的生产应用程序。有时,用户会不小心点击表单,蓝色聚焦窗口将变为灰色。我有一个计时器,每30秒触发一次,我想以编程方式将焦点重新放回到表单中,以便它从焦点变为灰色背景。我已经尝试过使用.focus事件和.activecontrol属性,但这些似乎都不起作用,我没有看到任何其他可行的选项。当然有办法做到这一点,虽然对吗?我在VB.Net中使用Visual Studio 2008。

请告知。

3 个答案:

答案 0 :(得分:2)

不,没有办法[不再。]即使你专注于一个应用程序,你可以期望的最好的是它在任务栏中的图标将闪烁三次。感谢christ他们解决了这个问题(因为我觉得XP?),当我看到你的观点时,对于用户而言,这种行为是地狱般的。他们应该控制他们的操作系统和应用程序,而不是你。遗憾!

答案 1 :(得分:2)

我很幸运使用了这个属性,这个.TopMost = true;

private void frmMain_Shown(object sender, EventArgs e)
{
// Make this form the active form and make it TopMost
this.ShowInTaskbar = false;
this.TopMost = true;
this.Focus();
this.BringToFront();
this.TopMost = false;
}

您可以尝试创建一个函数并从您的计时器代码中调用它。 (对不起,它在C#中)。

答案 2 :(得分:0)

这是我用来点击通知气球时将焦点设置回我的应用程序的原因:

'My app is maximized always, so change this as you need. WindowState focuses your application
Me.WindowState = FormWindowState.Maximized

'Bring the desired from to fucos
MyForm.Activate()