<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Timer是一個定時器,作為C#開發Timer控制元件是我們用的比較多的一個控制元件,它的功能很簡單,但是也是值得我們去學習的一個知識點,今天這篇文章就是想總結一下這個Timer控制元件,如果經常用還好,可以隨時知道怎麼寫,對於我這種記性不好的同學呢,我就以這種形式去做一個小小的筆記,方便自己下一次使用和查詢,內容比較簡單,會的同學可以略過了!
屬性
AutoReset 獲取或設定一個布林值,該值指示 Timer 是否應只引發一次 Elapsed 事件((false) 或重複 (true))。
CanRaiseEvents 獲取一個指示元件是否可以引發事件的值。(繼承自 Component)
Container 獲取包含 IContainer 的 Component。(繼承自 Component)
DesignMode 獲取一個值,用以指示 Component 當前是否處於設計模式。(繼承自 Component)
Enabled 獲取或設定一個值,該值指示 Timer 是否應引發 Elapsed 事件。
Events 獲取附加到此 Component 的事件處理程式的列表。(繼承自 Component)
Interval 獲取或設定引發 Elapsed 事件的間隔(以毫秒為單位)。
Site 獲取或設定在設計模式中將 Timer 繫結到其容器的站點。
SynchronizingObject 獲取或設定物件,該物件用於在間隔過後封送發出的事件處理程式呼叫。
方法
BeginInit() 開始用於表單或由其他元件使用的 Timer 的執行時初始化。
Close() 釋放由 Timer 佔用的資源。
CreateObjRef(Type) 建立一個物件,該物件包含生成用於與遠端物件進行通訊的代理所需的全部相關資訊。(繼承自 MarshalByRefObject)
Dispose() 釋放由 Component 使用的所有資源。(繼承自 Component)
Dispose(Boolean) 釋放由當前 Timer 使用的所有資源。
EndInit() 結束用於表單或由其他元件使用的 Timer 的執行時初始化。
Equals(Object) 確定指定物件是否等於當前物件。(繼承自 Object)
GetHashCode() 作為預設雜湊函數。(繼承自 Object)
GetLifetimeService() 檢索控制此範例的生存期策略的當前生存期服務物件。(繼承自 MarshalByRefObject)
GetService(Type) 返回一個物件,該物件表示由 Component 或它的 Container 提供的服務。(繼承自 Component)
GetType() 獲取型別
簡單的介面設計,我們點選介面上的按鈕,看看如何使用Timer 解決按鈕的冪等性問題,我們知道按鈕我們多次點選會多次觸發函數,如果連線下位機會傳送多次同樣的命令,顯然這是不符合互動邏輯的,所以我們使用Timer的方式將按鈕的狀態改變一下,將按鈕改為唯讀。
點選按鈕我們可以看到按鈕變灰了,表示我們禁止它再觸發,這樣可以避免多次點選,不會產生冪等性問題,按鈕二我們讓它在後臺兩秒列印一遍,我們可以看到兩秒觸發一次這個函數。
程式碼比較簡單,我們重在學習,學一下這個控制元件證明用,知道邏輯就可以了,程式碼很簡單,兩個按鈕兩個定時器,將它們的觸發函數看懂就可以實現了,按鈕一的操作就是針對按鈕重複提交而設計的。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Test929 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { button1.Enabled = true;//將按鈕的使用者互動開啟 } private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true;//開啟Timer定時器按鈕 button1.Enabled = false;//將按鈕的使用者互動關閉這樣可以實現,按鈕不可點選兩秒 } private void button2_Click(object sender, EventArgs e) { timer2.Enabled = !timer2.Enabled;//開啟定時器二的函數 } private void timer2_Tick(object sender, EventArgs e) { Console.WriteLine("兩秒執行一次這個函數");//列印這個話證明我們進入這個函數 } } }
這篇文章比較簡單,只是簡單的學習一下,對它有更多的認識,在有需求的時候最起碼有路子,雖然很簡單,但是也是可以學到東西的,我們學習了新的知識,對我們的知識儲備及技術又有新的一點點的進步
到此這篇關於C# Timer控制元件學習之使用Timer解決按鈕冪等性問題的文章就介紹到這了,更多相關C# Timer控制元件解決按鈕冪等性內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45