c#名稱空間 using 事件處理器

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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {
           
        }
        private void myMove()
        {
            label1.Left = label1.Left + 5;
            if (label1.Left > this.Height) label1.Left = -label1.Width;
        }
        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            myMove();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            myMove();
        }
    }
   
}

1、名稱空間和類

上例中,前8個語句以using開頭,爲名稱空間(namespace)的引用空間。

名稱空間是.NET Framework中提供引用代碼的一種方式,像一個容器,可以唯一標識代碼及其內容,在建立Windows程序時,需要用到.NET框架類庫所提供的組件(按鍵button、標籤label等),這些組件都包含在對應的名稱空間中,這些組件都必須通過using關鍵字引用。

C#程序中,程序的源代碼包含在了與當前項目同名的名稱空間中,該名稱空間的定義由關鍵字namespace引導,緊隨其後的是這個名稱空間的標識符(或名稱),名稱空間的內容包含在一對花括號{}中。

上例中,通過partial class關鍵字定義了一個Form1類,用戶定義的源代碼都在這個類中

2、初始化窗口

Form1類中只有一個與類同名的函數Form1(),其源代碼如下:

public Form1()
{
  InitializeComponent();
}

這個與Form1類同名的函數被稱爲構造函數,構造函數在實例化類對象時被自動調用,對窗體上安排的各控件進行初始化操作。

3、事件處理

編寫代碼時,我們在Form1類中輸入了一下四段程序源碼。名稱爲button1_Click、button2_Click和timer1_Tick的程序段被稱爲事件處理器(或事件處理程序),而myMove()的程序段被稱爲自定義函數。

(1)myMove函數分析

myMove函數中包含兩個語句,從上向下一次執行,其作用是使字幕往後移動一次。

label1.Left = label1.Left + 5;作用是:將字幕到窗口左邊界的距離增加5像素,使字幕右移

if (label1.Left > this.Height) label1.Left = -label1.Width;作用是:判斷字幕的位置是否超出了窗體右邊界,如超出,則將字幕重新移動到窗體左邊外側。

(2)事件處理器button_Click()分析

單用戶單擊按鈕時,觸發事件處理器 button1_Click(),依次執行其中的語句,第二個語句"myMove"執行時,程序調用函數myMove()從而實現右移功能。

(3)事件處理器timer1_Tick()分析

myMove的作用是使字幕向右移動,如果找到一種方法,能讓用戶單擊按鈕時,反覆調用myMove()函數,就可以實現字幕連續右移。

timer有兩個重要屬性:Enabled屬性和Interval屬性。時鐘的Enabled決定了時鐘是打開還是關閉,默認情況下爲關閉(Enabled=false)。Interval屬性的值是一個整數,代表一個時間間隔,他的單位是毫秒,其默認值爲100,代表0.1秒。當時鐘被打開時,程序會根據Interval的屬性指定的時間間隔反覆執行時間處理器timer_Tick()中的語句,直到時鐘再次關閉爲止。

(4)事件處理器button2_Click()分析

觸發按鈕後,在其中寫入打開時鐘語句“timer.Enabled=true”,就能每隔0.1秒反覆觸發timer_Tick()事件。

4、總結

C#的Windows應用程序運行過程可以歸納爲以下步驟

(1)導入程序所需組件對應的名稱空間

(2)創建窗體類對象,並初始化窗體

(3)運行窗體對象

(4)等待用戶行爲,觸發對應事件,執行事件處理程序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章