C#實(shí)現(xiàn)讓窗體獲得焦點(diǎn)的方法示例
本文實(shí)例講述了C#實(shí)現(xiàn)讓窗體獲得焦點(diǎn)的方法。分享給大家供大家參考,具體如下:
開發(fā)環(huán)境:Visual Studio .NET 2005 下的Windows Form Application
應(yīng)用場(chǎng)景:當(dāng)我們有個(gè)窗體中的數(shù)據(jù)發(fā)生了變化而此窗體又沒有獲得焦點(diǎn)(不是用戶操作的當(dāng)前窗口)的時(shí)候,我們希望它獲得焦點(diǎn),這樣用戶就可以立刻發(fā)現(xiàn)它上面的數(shù)據(jù)發(fā)生了變化。
新建一個(gè)Window應(yīng)用程序,會(huì)建立Form1,再添加一個(gè)Timer(timer1),設(shè)置如下屬性:
然后添加timer1的Tick事件函數(shù),完整代碼如下:
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); //設(shè)置此窗體為活動(dòng)窗體 private void timer1_Tick(object sender, EventArgs e) { if (this.Handle != GetF()) //如果本窗口沒有獲得焦點(diǎn) SetF(this.Handle); //設(shè)置本窗口獲得焦點(diǎn) } } }
運(yùn)行看看,你會(huì)發(fā)現(xiàn)當(dāng)Tick事件發(fā)生時(shí),本窗口總會(huì)跳出來告訴你--我獲得焦點(diǎn)了
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#窗體操作技巧匯總》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#常見控件用法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
- C# WINFORM 強(qiáng)制讓窗體獲得焦點(diǎn)的方法代碼
- 解決C#中取消方向鍵對(duì)控件焦點(diǎn)控制的實(shí)現(xiàn)方法
- C#,winform,ShowDialog,子窗體向父窗體傳值
- C#設(shè)置子窗體在主窗體中居中顯示解決方案
- C#窗體編程不顯示最小化、最大化、關(guān)閉按鈕的方法
- C# 開發(fā)圓角控件(窗體)的具體實(shí)現(xiàn)
- C#實(shí)現(xiàn)讓窗體永遠(yuǎn)在窗體最前面顯示的實(shí)例
- 用 C# Winform做出全透明的磨砂玻璃窗體效果代碼
- C# Winform實(shí)現(xiàn)捕獲窗體最小化、最大化、關(guān)閉按鈕事件的方法
- c# winform 關(guān)閉窗體時(shí)同時(shí)結(jié)束線程實(shí)現(xiàn)思路
- C# SkinEngine控件 給窗體添加皮膚的方法
- C#最簡(jiǎn)單的關(guān)閉子窗體更新父窗體的實(shí)現(xiàn)方法
相關(guān)文章
C/C++與Java各數(shù)據(jù)類型所占字節(jié)數(shù)的詳細(xì)比較
本篇文章主要是對(duì)C/C++與Java各數(shù)據(jù)類型所占字節(jié)數(shù)進(jìn)行了詳細(xì)的對(duì)比。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01C#實(shí)現(xiàn)窗體中動(dòng)態(tài)按鈕的設(shè)計(jì)方法
在窗體界面中,通常以按鈕來代替菜單欄的功能,這種形式雖然給用戶一種直觀、界面風(fēng)格各異的感覺,但通常按鈕都是以靜止的形式顯示,所以本文給大家介紹了C#實(shí)現(xiàn)窗體中動(dòng)態(tài)按鈕的設(shè)計(jì)方法,感興趣的朋友可以參考下2024-04-04C#網(wǎng)絡(luò)爬蟲代碼分享 C#簡(jiǎn)單的爬取工具
這篇文章主要為大家詳細(xì)介紹了C#網(wǎng)絡(luò)爬蟲代碼,教大家如何制作了簡(jiǎn)單的爬取工具,感興趣的小伙伴們可以參考一下2016-07-07C#實(shí)現(xiàn)在服務(wù)器端裁剪圖片的方法
這篇文章主要介紹了C#實(shí)現(xiàn)在服務(wù)器端裁剪圖片的方法,涉及C#操作圖片的相關(guān)技巧,需要的朋友可以參考下2015-04-04C#反射實(shí)現(xiàn)插件式開發(fā)的過程詳解
插件式架構(gòu),一種全新的、開放性的、高擴(kuò)展性的架構(gòu)體系,插件式架構(gòu)設(shè)計(jì)好處很多,把擴(kuò)展功能從框架中剝離出來,降低了框架的復(fù)雜度,讓框架更容易實(shí)現(xiàn),這篇文章主要介紹了C#反射實(shí)現(xiàn)插件式開發(fā),需要的朋友可以參考下2023-09-09c#反射機(jī)制學(xué)習(xí)和利用反射獲取類型信息
反射(Reflection)是.NET中的重要機(jī)制,通過放射,可以在運(yùn)行時(shí)獲得.NET中每一個(gè)類型(包括類、結(jié)構(gòu)、接口和枚舉等)的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等,還可以獲得每個(gè)成員的名稱、限定符和參數(shù)等,有了反射,即可對(duì)每一個(gè)類型了如指掌2014-01-01C#獲取文件、文件夾和驅(qū)動(dòng)器的信息示例詳解
在C#中,文件、文件夾和驅(qū)動(dòng)器是文件系統(tǒng)操作的基本元素,了解如何獲取這些元素的信息對(duì)于開發(fā)文件處理和管理工具至關(guān)重要,本文將詳細(xì)介紹如何在C#中獲取有關(guān)文件、文件夾和驅(qū)動(dòng)器的信息,并提供相應(yīng)的示例,需要的朋友可以參考下2024-08-08C#線性漸變畫刷LinearGradientBrush用法實(shí)例
這篇文章主要介紹了C#線性漸變畫刷LinearGradientBrush用法,實(shí)例分析了線性漸變畫刷LinearGradientBrush的相關(guān)使用技巧,需要的朋友可以參考下2015-06-06