NET 程式設計入門 ( 使用 C#)

Preview:

DESCRIPTION

.NET 程式設計入門 ( 使用 C#). 講師:鄧智鴻. Outline. 鍵盤事件 檔案存取 動態產生控制項與事件程式碼. 鍵盤事件. 大多數的控制項具有和鍵盤相關的事件 KeyDown 按下某個鍵的時候發生 KeyUp 放開某個鍵的時候發生 KeyPress 按住某個鍵的時候發生,對於功能鍵沒有反應. 鍵盤事件. 表單中的有許多控制項,但輸入焦點只有一個 控制項成為輸入焦點的時候會和平常有所不同 TextBox 成為焦點的時,會有游標在閃 Button 成為焦點時,框線顏色粗細稍有不同 - PowerPoint PPT Presentation

Citation preview

.NET 程式設計入門 ( 使用 C#)

講師:鄧智鴻

Outline 鍵盤事件 檔案存取 動態產生控制項與事件程式碼

鍵盤事件 大多數的控制項具有和鍵盤相關的事件 KeyDown

按下某個鍵的時候發生 KeyUp

放開某個鍵的時候發生 KeyPress

按住某個鍵的時候發生,對於功能鍵沒有反應

鍵盤事件 表單中的有許多控制項,但輸入焦點只有一個 控制項成為輸入焦點的時候會和平常有所不同

TextBox 成為焦點的時,會有游標在閃 Button 成為焦點時,框線顏色粗細稍有不同

所有控制項都共用一個鍵盤,不能說鍵盤一打字,所有控制項的鍵盤事件都執行。

鍵盤只會喚起是輸入焦點的控制項的鍵盤事件程式碼來執行

可以用 物件名稱 . Focus(); 來指定焦點放在該物件上

鍵盤事件 - 課堂範例 程式功能

拉兩個 TextBox 、一個 Label 出來 當 textbox1 在輸入的時候,讓 Label 顯示 textbox1 在輸入 當 textbox2 在輸入的時候,讓 Label 顯示 textbox2 在輸入

程式內容private void textBox1_KeyDown(object sender,

KeyEventArgs e){label1.Text="textBox1 在輸入 ";}

private void textBox2_KeyDown(object sender, KeyEventArgs e)

{label1.Text = "textBox2 在輸入 ";}

鍵盤事件 - 課堂範例 程式功能

比較 KeyPress 和 KeyDown 的不同 程式內容

private void textBox1_KeyDown(object sender, KeyEventArgs e)

{label1.Text = "textBox1 在 KeyDown";

}

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)

{label1.Text="textBox1 在 KeyPress";

}

鍵盤事件 KeyEventArgs 物件

當一個鍵按下的時候,你會得到一個 KeyEventArgs 物件 屬性

Keys KeyCode 是哪一個鍵被按了 bool Shift Shift 是否有被按 bool Control Ctrl 是否有被按 bool Alt Alt 是否有被按

鍵盤事件 Keys 列舉

.Net Framework 中內建的一個超大列舉 是紀錄著鍵盤與其代碼對應的表格 打” Keys.” 即會出現一大堆選擇項目,全都是鍵盤上

的對應鍵 (int)Keys.A 可將 Keys.A 轉為整數型態,即為 65 Convert.ToString(Keys.A) 轉為字串型態,即

為” A”

鍵盤事件 KeyEventArgs 物件

當我們用 KeyDown 、 KeyUp 時系統會回傳鍵盤物鍵 KeyEventArgs 給我們

KeyEventArgs 的其中一個屬性 KeyCode 就是Keys 型態的

透過讀取 KeyEventArgs 的 KeyCode 屬性值,我們可以知道使用者按了哪一個鍵

鍵盤事件 - 課堂範例 程式功能

將使用者目前在 TextBox 打的字,其印在 Label 上 程式內容 拉一個 TextBox 和 Label 在 TextBox 的 KeyDown 事件程式碼中打入

private void textBox1_KeyDown(object sender, KeyEventArgs e)

{label1.Text =Convert.ToString(e.KeyCode);

}

鍵盤事件 - 課堂範例 程式功能

將使用者目前在 TextBox 打的字,其印在 Label 上 程式內容 拉一個 TextBox 和 Label 在 TextBox 的 KeyPress 事件程式碼中打入

private void textBox1_KeyDown(object sender, KeyPressEventArgs e)

{label1.Text =Convert.ToString(e.KeyChar);

}

鍵盤事件 - 課堂練習 程式功能

拉三個 TextBox ,讓使用者可以再按了 Enter 後就將焦點跳到下一個 TextBox

鍵盤事件 - 課堂練習 程式功能

寫一個程式,有一個 TextBox 和一個 Label 讓 TextBox 為焦點的時候不論打甚麼鍵, Label 都可以顯示出那

個鍵,字母的大小寫也會區分

Outline 鍵盤事件 檔案存取 動態產生控制項與事件程式碼

檔案存取 檔案的讀取寫入指令

System.IO.File.WriteAllText( 檔案路徑 , 文字內容 ); 要存 text 的地方 =System.IO.File.ReadAllText( 檔案

路徑 );

檔案存取 - 課堂範例 程式功能

將 text file 讀入 程式內容

在 c 底下建一個 file 叫 Test.txt ,隨便亂打一些內容 拉一個 button 和一個 TextBox 將 TextBox 的 Multiline 設為 true 在 button 的 click 事件當中做讀檔動作

private void button1_Click(object sender, EventArgs e){

textbox1.text=System.IO.File.ReadAllText(“c:\\Test.txt”);

}

檔案存取 - 課堂範例 程式功能

將 textbox 內容寫入 text file 程式內容

拉一個 button 和一個 TextBox 將 TextBox 的 Multiline 設為 true 在 TextBox 內隨便打一些內容 在 button 的 click 事件當中做寫檔動作

private void button1_Click(object sender, EventArgs e){

System.IO.File. WriteAllText(“c:\\Test2.txt”, Textbox1.text);

}

檔案存取 OpenFileDialog 控制項

C# 內建的開檔對話視窗 提供了方便的檔案瀏覽與選擇的功能 請注意,他並不會幫你真的完成開檔的功能

檔案存取 OpenFileDialog 控制項

用 “ OpenFileDialog 物件名稱 .ShowDialog()” 可把對話框打開

“OpenFileDialog 物件名稱 .ShowDialog()” 有回傳值,判斷回傳值即可知使用者是否按了確定

回傳值為 DialogResult 型別

檔案存取 - 課堂範例

檔案存取 - 課堂練習 程式功能

建立一個 TextBox 建立可讀寫檔案的功能

檔案存取 MenuStrip 控制項

主功能表的控制項 支援多下拉多個選項的功能

檔案存取 MenuStrip 控制項

很方便的可創造出多個選項 Double-click 你創造好的選項即可編寫程式碼

檔案存取 - 課堂範例 程式功能

建立一個 MenuStrip ,含有一個下拉選項 下拉選項有兩欄,開檔和讀檔 建立一個 Label 在按開檔時 Label 會顯示開檔 在按讀檔時 Label 會顯示讀檔

程式內容 private void 開檔 ToolStripMenuItem_Click(object sender,

EventArgs e){

Label1.text=“ 開檔” ;} private void 讀檔 ToolStripMenuItem_Click(object sender,

EventArgs e){

Label1.text=“ 讀檔” ;}

檔案存取 - 課堂練習 程式功能

將開檔讀檔功能建立進 MenuStrip 裡

檔案存取 PictureBox 控制項

可用來放 Gif 、 Jpeg 等圖檔 屬性

Image- 設定想要放置的圖片 SizeMode- 調整圖片在控制項中的呈現方式

檔案存取 PictureBox 控制項

動態讀取圖檔 pictureBox1.Image =

system.Drawing.Image.FromFile(“c:\\mypicture.jpg”);

檔案存取 - 課堂練習 程式功能

有動態讀取圖片的功能的程式 可透過 MenuStrip 及 OpenFileDialog 來讀圖檔

檔案存取 - 課堂練習 程式功能

紅綠燈 紅燈 3 秒,綠燈 5 秒,黃燈 1 秒

提示 利用 Timer 來做

Outline 鍵盤事件 檔案存取 動態產生控制項與事件程式碼

動態產生控制項與事件程式碼 除了在設計畫面下自己拉控制項以外,控制項可以動

態產生 語法

物件類別 物件名稱 =new 物件類別 (); Controls.Add( 物件名稱 );

動態產生控制項與事件程式碼 - 範例 程式功能

按下 button 時則產生一個 TextBox 程式內容

private void button1_Click(object sender, EventArgs e){

TextBox t1 = new TextBox(); Controls.Add(t1);}

動態產生控制項與事件程式碼 - 練習 程式功能

按下 button 時則產生一個 TextBox ,並置於表單中間 提示

利用 Top,Left 屬性控制位置 用 this.size 來得到表單的長寬

動態產生控制項與事件程式碼 我們還可以幫這些動態產生的控制項加事件 語法

物件名稱 .事件名稱 +=new EventHandler(函式名稱 );

然後在下面寫一個處理函式 這個函式除了名字外,其他參數等都要和正式的事件處理函式一樣

動態產生控制項與事件程式碼 - 範例 程式功能

按下 button 時則產生一個 TextBox 程式內容

private void button1_Click(object sender, EventArgs e){

TextBox t1 = new TextBox(); Controls.Add(t1);

t1.Click += new EventHandler(ck);}private void ck(object sender, EventArgs e){

t1.Width = 100;}

動態產生控制項與事件程式碼 - 練習 程式功能

建立一個 button 按下 button 時則產生一個 PictureBox ,並 load 一張圖

到其上

課後作業 計算機

具有 10 個數字鍵 具有加減乘除、 mod 鍵、等於鍵、清除鍵 按按鍵也可以輸入

Recommended