1 / 37

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

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

yaholo
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET 程式設計入門(使用 C#) 講師:鄧智鴻

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

  3. 鍵盤事件 • 大多數的控制項具有和鍵盤相關的事件 • KeyDown • 按下某個鍵的時候發生 • KeyUp • 放開某個鍵的時候發生 • KeyPress • 按住某個鍵的時候發生,對於功能鍵沒有反應

  4. 鍵盤事件 • 表單中的有許多控制項,但輸入焦點只有一個 • 控制項成為輸入焦點的時候會和平常有所不同 • TextBox成為焦點的時,會有游標在閃 • Button成為焦點時,框線顏色粗細稍有不同 • 所有控制項都共用一個鍵盤,不能說鍵盤一打字,所有控制項的鍵盤事件都執行。 • 鍵盤只會喚起是輸入焦點的控制項的鍵盤事件程式碼來執行 • 可以用 物件名稱. Focus(); 來指定焦點放在該物件上

  5. 鍵盤事件-課堂範例 • 程式功能 • 拉兩個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在輸入"; }

  6. 鍵盤事件-課堂範例 • 程式功能 • 比較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"; }

  7. 鍵盤事件 • KeyEventArgs物件 • 當一個鍵按下的時候,你會得到一個KeyEventArgs物件 • 屬性 • Keys KeyCode 是哪一個鍵被按了 • bool Shift  Shift是否有被按 • bool Control Ctrl是否有被按 • bool Alt Alt是否有被按

  8. 鍵盤事件 • Keys 列舉 • .Net Framework中內建的一個超大列舉 • 是紀錄著鍵盤與其代碼對應的表格 • 打”Keys.”即會出現一大堆選擇項目,全都是鍵盤上的對應鍵 • (int)Keys.A可將Keys.A轉為整數型態,即為65 • Convert.ToString(Keys.A)轉為字串型態,即為”A”

  9. 鍵盤事件 • KeyEventArgs物件 • 當我們用KeyDown、KeyUp時系統會回傳鍵盤物鍵KeyEventArgs給我們 • KeyEventArgs的其中一個屬性KeyCode就是Keys型態的 • 透過讀取KeyEventArgs的KeyCode屬性值,我們可以知道使用者按了哪一個鍵

  10. 鍵盤事件-課堂範例 • 程式功能 • 將使用者目前在TextBox打的字,其印在Label上 • 程式內容 • 拉一個TextBox和Label • 在TextBox的KeyDown事件程式碼中打入 private void textBox1_KeyDown(object sender, KeyEventArgs e) { label1.Text =Convert.ToString(e.KeyCode); }

  11. 鍵盤事件-課堂範例 • 程式功能 • 將使用者目前在TextBox打的字,其印在Label上 • 程式內容 • 拉一個TextBox和Label • 在TextBox的KeyPress事件程式碼中打入 private void textBox1_KeyDown(object sender, KeyPressEventArgs e) { label1.Text =Convert.ToString(e.KeyChar); }

  12. 鍵盤事件-課堂練習 • 程式功能 • 拉三個TextBox,讓使用者可以再按了Enter後就將焦點跳到下一個TextBox

  13. 鍵盤事件-課堂練習 • 程式功能 • 寫一個程式,有一個TextBox和一個Label • 讓TextBox為焦點的時候不論打甚麼鍵,Label都可以顯示出那個鍵,字母的大小寫也會區分

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

  15. 檔案存取 • 檔案的讀取寫入指令 • System.IO.File.WriteAllText(檔案路徑,文字內容); • 要存text的地方=System.IO.File.ReadAllText(檔案路徑);

  16. 檔案存取-課堂範例 • 程式功能 • 將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”); }

  17. 檔案存取-課堂範例 • 程式功能 • 將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); }

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

  19. 檔案存取 • OpenFileDialog控制項 • 用 “OpenFileDialog物件名稱.ShowDialog()”可把對話框打開 • “OpenFileDialog物件名稱.ShowDialog()”有回傳值,判斷回傳值即可知使用者是否按了確定 • 回傳值為DialogResult型別

  20. 檔案存取-課堂範例 • 程式功能 • 建立一個button,按了即可開啟開檔對話框 • 程式內容 • 拉一個button、一個OpenFileDialog、一個Label • 在button的click事件當中做讀檔動作 private void button1_Click(object sender, EventArgs e) { if(openFileDialog1.ShowDialog()==DialogResult.OK) { string filename = openFileDialog1.FileName; label1.Text = filename; } }

  21. 檔案存取-課堂練習 • 程式功能 • 建立一個TextBox • 建立可讀寫檔案的功能

  22. 檔案存取 • MenuStrip控制項 • 主功能表的控制項 • 支援多下拉多個選項的功能

  23. 檔案存取 • MenuStrip控制項 • 很方便的可創造出多個選項 • Double-click你創造好的選項即可編寫程式碼

  24. 檔案存取-課堂範例 • 程式功能 • 建立一個MenuStrip,含有一個下拉選項 • 下拉選項有兩欄,開檔和讀檔 • 建立一個Label • 在按開檔時Label會顯示開檔 • 在按讀檔時Label會顯示讀檔 • 程式內容 private void 開檔ToolStripMenuItem_Click(object sender, EventArgs e) { Label1.text=“開檔”; } private void 讀檔ToolStripMenuItem_Click(object sender, EventArgs e) { Label1.text=“讀檔”; }

  25. 檔案存取-課堂練習 • 程式功能 • 將開檔讀檔功能建立進MenuStrip裡

  26. 檔案存取 • PictureBox控制項 • 可用來放Gif 、Jpeg等圖檔 • 屬性 • Image-設定想要放置的圖片 • SizeMode-調整圖片在控制項中的呈現方式

  27. 檔案存取 • PictureBox控制項 • 動態讀取圖檔 • pictureBox1.Image = system.Drawing.Image.FromFile(“c:\\mypicture.jpg”);

  28. 檔案存取-課堂練習 • 程式功能 • 有動態讀取圖片的功能的程式 • 可透過MenuStrip及OpenFileDialog來讀圖檔

  29. 檔案存取-課堂練習 • 程式功能 • 紅綠燈 • 紅燈3秒,綠燈5秒,黃燈1秒 • 提示 • 利用Timer來做

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

  31. 動態產生控制項與事件程式碼 • 除了在設計畫面下自己拉控制項以外,控制項可以動態產生 • 語法 • 物件類別 物件名稱=new 物件類別(); • Controls.Add(物件名稱);

  32. 動態產生控制項與事件程式碼-範例 • 程式功能 • 按下button時則產生一個TextBox • 程式內容 private void button1_Click(object sender, EventArgs e) { TextBox t1 = new TextBox(); Controls.Add(t1); }

  33. 動態產生控制項與事件程式碼-練習 • 程式功能 • 按下button時則產生一個TextBox,並置於表單中間 • 提示 • 利用Top,Left屬性控制位置 • 用this.size來得到表單的長寬

  34. 動態產生控制項與事件程式碼 • 我們還可以幫這些動態產生的控制項加事件 • 語法 • 物件名稱.事件名稱+=new EventHandler(函式名稱); • 然後在下面寫一個處理函式 • 這個函式除了名字外,其他參數等都要和正式的事件處理函式一樣

  35. 動態產生控制項與事件程式碼-範例 • 程式功能 • 按下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; }

  36. 動態產生控制項與事件程式碼-練習 • 程式功能 • 建立一個button • 按下button時則產生一個PictureBox,並load一張圖到其上

  37. 課後作業 • 計算機 • 具有10個數字鍵 • 具有加減乘除、mod鍵、等於鍵、清除鍵 • 按按鍵也可以輸入

More Related