首页 > 编程 > C# > 正文

C#实现让窗体获得焦点的方法示例

2019-10-29 21:09:41
字体:
来源:转载
供稿:网友

本文实例讲述了C#实现让窗体获得焦点的方法。分享给大家供大家参考,具体如下:

开发环境:Visual Studio .NET 2005 下的Windows Form Application

应用场景:当我们有个窗体中的数据发生了变化而此窗体又没有获得焦点(不是用户操作的当前窗口)的时候,我们希望它获得焦点,这样用户就可以立刻发现它上面的数据发生了变化。

新建一个Window应用程序,会建立Form1,再添加一个Timer(timer1),设置如下属性:

C#,窗体,获得,焦点

然后添加timer1的Tick事件函数,完整代码如下:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test{  public partial class PlayVoice : Form  {    public PlayVoice()    {      InitializeComponent();    }    [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "GetForegroundWindow", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]    public static extern IntPtr GetF(); //获得本窗体的句柄    [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]    public static extern bool SetF(IntPtr hWnd); //设置此窗体为活动窗体    private void timer1_Tick(object sender, EventArgs e)    {      if (this.Handle != GetF()) //如果本窗口没有获得焦点        SetF(this.Handle); //设置本窗口获得焦点    }  }}

运行看看,你会发现当Tick事件发生时,本窗口总会跳出来告诉你--我获得焦点了

希望本文所述对大家C#程序设计有所帮助。


注:相关教程知识阅读请移步到c#教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表