C# Timer組件簡單介紹
C# Timer組件有很多值得學(xué)習(xí)的地方,這里我們主要介紹Visual C#做的一個(gè)窗體飄動(dòng)的程序,包括介紹這個(gè)程序的設(shè)計(jì)和運(yùn)行的環(huán)境。
C# Timer組件是也是一個(gè)WinForm組件了,和其他的WinForm組件的***區(qū)別是:C# Timer組件是不可見的,而其他大部分的組件都是都是可見的,可以設(shè)計(jì)的。C# Timer組件也被封裝在名稱空間System.Windows.Forms中,其主要作用是當(dāng)C# Timer組件啟動(dòng)后,每隔一個(gè)固定時(shí)間段,觸發(fā)相同的事件。C# Timer組件在程序設(shè)計(jì)中是一個(gè)比較常用的組件,雖然屬性、事件都很少,但在有些地方使用它會(huì)產(chǎn)生意想不到的效果。本文介紹的程序,是用Visual C#做的一個(gè)窗體飄動(dòng)的程序,這其中就大量的使用了C# Timer組件。
下面就來介紹一下,這個(gè)程序的設(shè)計(jì)和運(yùn)行的環(huán)境。
一.本文程序設(shè)計(jì)和運(yùn)行的軟件環(huán)境:
1 微軟公司視窗2000服務(wù)器版
2 .Net FrameWork SDK Beta 2
二.程序設(shè)計(jì)的思路以及關(guān)鍵步驟的解決方法:
其實(shí)要使得程序的窗體飄動(dòng)起來,其實(shí)思路是比較簡單的。首先是當(dāng)加載窗體的時(shí)候,給窗體設(shè)定一個(gè)顯示的初始位置。然后通過在窗體中定義的二個(gè)C# Timer組件,其中一個(gè)叫Timer1,其作用是控制窗體從左往右飄動(dòng)(當(dāng)然如果你愿意,你也可以改為從上往下飄動(dòng),或者其他的飄動(dòng)方式。),另外一個(gè)Timer2是控制窗體從右往左飄動(dòng)(同樣你也可以改為其他飄動(dòng)方式)。當(dāng)然這二個(gè)C# Timer組件不能同時(shí)啟動(dòng),在本文的程序中,是先設(shè)定Timer1組件啟動(dòng)的,當(dāng)此Timer1啟動(dòng)后,每隔0.01秒,都會(huì)在觸發(fā)的事件中給窗體的左上角的橫坐標(biāo)都加上"1",這時(shí)我們看到的結(jié)果是窗體從左往右不斷移動(dòng),當(dāng)移動(dòng)到一定的位置后,Timer1停止。Timer2啟動(dòng),每隔0.01秒,在觸發(fā)定義的事件中給窗體的左上角的橫坐標(biāo)都減去"1",這時(shí)我們看到的結(jié)果是窗體從右往左不斷移動(dòng)。當(dāng)移動(dòng)到一定位置后,Timer1啟動(dòng),Timer2停止,如此反覆,這樣窗體也就飄動(dòng)起來了。要實(shí)現(xiàn)上述思路,必須解決好以下問題。
1.如何設(shè)定窗體的初始位置:
設(shè)定窗體的初始位置,是在事件Form1_Load()中進(jìn)行的。此事件是當(dāng)窗體加載的時(shí)候觸發(fā)的。Form有一個(gè)DesktopLocation屬性,這個(gè)屬性是設(shè)定窗體的左上角的二維位置。在程序中是通過Point結(jié)構(gòu)變量來設(shè)定此屬性的值,具體如下:
- //設(shè)定窗體起初飄動(dòng)的位置,位置為屏幕的坐標(biāo)的(0,240)
- private void Form1_Load ( object sender , System.EventArgs e )
- {
- Point p = new Point ( 0 , 240 ) ;
- this.DesktopLocation = p ;
- }
2.如何實(shí)現(xiàn)窗體從左往右飄動(dòng):
設(shè)定Timer1的Interval值為"10",就是當(dāng)Timer1啟動(dòng)后,每隔0.01秒觸發(fā)的事件是Timer1_Tick(),在這個(gè)事件中編寫給窗體左上角的橫坐標(biāo)不斷加"1"的代碼,就可以了,具體如下:
- private void timer1_Tick(object sender, System.EventArgs e)
- {
- { //窗體的左上角橫坐標(biāo)隨著timer1不斷加一
- Point p = new Point ( this.DesktopLocation.X + 1 , this.DesktopLocation.Y ) ;
- this.DesktopLocation = p ;
- if ( p.X == 550 )
- {
- timer1.Enabled = false ;
- timer2.Enabled = true ;
- }
- }
3.如何實(shí)現(xiàn)窗體從右往左飄動(dòng):
代碼設(shè)計(jì)和從左往右飄動(dòng)差不多,主要的區(qū)別是減"1"而不是加"1"了,具體如下:
- //當(dāng)窗體左上角位置的橫坐標(biāo)為-150時(shí),timer2停止,timer1啟動(dòng)
- private void timer2_Tick(object sender, System.EventArgs e)
- { file://窗體的左上角橫坐標(biāo)隨著timer2不斷減一
- Point p = new Point ( this.DesktopLocation.X - 1 , this.DesktopLocation.Y ) ;
- this.DesktopLocation = p ;
- if ( p.X == - 150 )
- {
- timer1.Enabled = true ;
- timer2.Enabled = false ;
- }
- }
【編輯推薦】