37
.NET 程程程程程程 ( 程程 C#) 程程 程程程

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

  • Upload
    yaholo

  • View
    93

  • Download
    13

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

講師:鄧智鴻

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

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

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

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

按下某個鍵的時候發生 KeyUp

放開某個鍵的時候發生 KeyPress

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

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

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

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

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

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

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

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

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

拉兩個 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 在輸入 ";}

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

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

比較 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";

}

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

鍵盤事件 KeyEventArgs 物件

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

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

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

鍵盤事件 Keys 列舉

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

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

為” A”

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

鍵盤事件 KeyEventArgs 物件

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

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

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

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

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

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

private void textBox1_KeyDown(object sender, KeyEventArgs e)

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

}

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

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

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

private void textBox1_KeyDown(object sender, KeyPressEventArgs e)

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

}

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

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

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

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

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

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

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

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

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

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

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

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

路徑 );

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

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

將 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”);

}

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

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

將 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);

}

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

檔案存取 OpenFileDialog 控制項

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

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

檔案存取 OpenFileDialog 控制項

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

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

回傳值為 DialogResult 型別

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

檔案存取 - 課堂範例

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

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

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

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

檔案存取 MenuStrip 控制項

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

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

檔案存取 MenuStrip 控制項

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

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

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

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

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

EventArgs e){

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

EventArgs e){

Label1.text=“ 讀檔” ;}

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

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

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

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

檔案存取 PictureBox 控制項

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

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

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

檔案存取 PictureBox 控制項

動態讀取圖檔 pictureBox1.Image =

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

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

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

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

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

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

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

提示 利用 Timer 來做

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

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

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

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

態產生 語法

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

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

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

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

private void button1_Click(object sender, EventArgs e){

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

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

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

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

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

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

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

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

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

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

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

按下 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;}

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

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

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

到其上

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

課後作業 計算機

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