WinForm實(shí)現(xiàn)頁面按鈕定時(shí)隱藏功能
本文實(shí)例講述了WinForm實(shí)現(xiàn)頁面按鈕定時(shí)隱藏功能。分享給大家供大家參考,具體如下:
有時(shí)候在做程序時(shí)需要將頁面上某一項(xiàng)顯示出來,然后過一段時(shí)間后消失掉,這時(shí)可以通過timer定時(shí)來實(shí)現(xiàn)
private void Form1_Load(object sender, EventArgs e)
{
System.Timers.Timer t = new System.Timers.Timer(3000);
t.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);
t.Enabled = true;
t.AutoReset = false;
}
然后在OnTimedEvent事件中寫入相應(yīng)的代碼,列如:label1.Visible = false;此時(shí)會(huì)發(fā)現(xiàn)這兩個(gè)不是同一個(gè)線程,因此我們需要用委托delegate來實(shí)現(xiàn)跨線程
定義一個(gè)委托
private delegate void SetVisibleCallback();
//在給label1.visible賦值的地方調(diào)用以下方法即可
private void SetVisible()
{
// InvokeRequired需要比較調(diào)用線程ID和創(chuàng)建線程ID
// 如果它們不相同則返回true
if (this.label1.InvokeRequired)
{
SetVisibleCallback d = new SetVisibleCallback(SetPan);
this.Invoke(d);
}
else
{
this.label1.Visible = false;
}
}
此時(shí)在timer產(chǎn)生的事件中調(diào)用SetVisible()即可
private void OnTimedEvent(object sender, System.Timers.ElapsedEventArgs e)
{
SetPan();
}
當(dāng)然,如果不用委托實(shí)現(xiàn),可以在OnTimedEvent事件中寫入
CheckForIllegalCrossThreadCalls = false;////避免跨線程的問題 label1.Visible = false;
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《WinForm控件用法總結(jié)》、《C#窗體操作技巧匯總》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#常見控件用法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#關(guān)聯(lián)自定義文件類型到應(yīng)用程序并實(shí)現(xiàn)自動(dòng)導(dǎo)入功能
今天通過本文給大家分享C#關(guān)聯(lián)自定義文件類型到應(yīng)用程序并實(shí)現(xiàn)自動(dòng)導(dǎo)入功能,代碼中寫入了兩個(gè)注冊(cè)表,實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
C# Process調(diào)用外部程序的實(shí)現(xiàn)
這篇文章主要介紹了C# Process調(diào)用外部程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
淺談Visual Studio 2019 Vue項(xiàng)目的目錄結(jié)構(gòu)
這篇文章主要介紹了Visual Studio 2019 Vue項(xiàng)目 目錄結(jié)構(gòu),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
C#中使用@聲明變量示例(逐字標(biāo)識(shí)符)
這篇文章主要介紹了C#中使用@聲明變量示例(逐字標(biāo)識(shí)符)在C#中,@符號(hào)不僅可以加在字符串常量之前,使字符串不作轉(zhuǎn)義之用,還可以加在變量名之前,使變量名與關(guān)鍵字不沖突,這種用法稱為“逐字標(biāo)識(shí)符”,需要的朋友可以參考下2015-06-06

