程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> WinForm實現頁面按鈕定時隱藏功能

WinForm實現頁面按鈕定時隱藏功能

編輯:C#入門知識

WinForm實現頁面按鈕定時隱藏功能。本站提示廣大學習愛好者:(WinForm實現頁面按鈕定時隱藏功能)文章只能為提供參考,不一定能成為您想要的結果。以下是WinForm實現頁面按鈕定時隱藏功能正文


WinForm實現頁面按鈕定時隱藏功能

作者:何問起

這篇文章主要介紹了WinForm實現頁面按鈕定時隱藏功能,結合實例形式分析了WinForm基於定時器的頁面控件屬性動態操作相關實現技巧,需要的朋友可以參考下

本文實例講述了WinForm實現頁面按鈕定時隱藏功能。分享給大家供大家參考,具體如下:

有時候在做程序時需要將頁面上某一項顯示出來,然後過一段時間後消失掉,這時可以通過timer定時來實現

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事件中寫入相應的代碼,列如:label1.Visible = false;此時會發現這兩個不是同一個線程,因此我們需要用委托delegate來實現跨線程

定義一個委托

private delegate void SetVisibleCallback();
//在給label1.visible賦值的地方調用以下方法即可
private void SetVisible()
{
  // InvokeRequired需要比較調用線程ID和創建線程ID
  // 如果它們不相同則返回true
  if (this.label1.InvokeRequired)
  {
    SetVisibleCallback d = new SetVisibleCallback(SetPan);
    this.Invoke(d);
   }
   else
   {
    this.label1.Visible = false;
   }
}

此時在timer產生的事件中調用SetVisible()即可

private void OnTimedEvent(object sender, System.Timers.ElapsedEventArgs e)
{
  SetPan();
}

當然,如果不用委托實現,可以在OnTimedEvent事件中寫入

CheckForIllegalCrossThreadCalls = false;////避免跨線程的問題
label1.Visible = false;

更多關於C#相關內容感興趣的讀者可查看本站專題:《WinForm控件用法總結》、《C#窗體操作技巧匯總》、《C#數據結構與算法教程》、《C#常見控件用法教程》、《C#面向對象程序設計入門教程》及《C#程序設計之線程使用技巧總結》

希望本文所述對大家C#程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved