.NET 程式設計入門 ( 使用 C#)
description
Transcript of .NET 程式設計入門 ( 使用 C#)
![Page 1: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/1.jpg)
.NET 程式設計入門 ( 使用 C#)
講師:鄧智鴻
![Page 2: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/2.jpg)
Outline 鍵盤事件 檔案存取 動態產生控制項與事件程式碼
![Page 3: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/3.jpg)
鍵盤事件 大多數的控制項具有和鍵盤相關的事件 KeyDown
按下某個鍵的時候發生 KeyUp
放開某個鍵的時候發生 KeyPress
按住某個鍵的時候發生,對於功能鍵沒有反應
![Page 4: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/4.jpg)
鍵盤事件 表單中的有許多控制項,但輸入焦點只有一個 控制項成為輸入焦點的時候會和平常有所不同
TextBox 成為焦點的時,會有游標在閃 Button 成為焦點時,框線顏色粗細稍有不同
所有控制項都共用一個鍵盤,不能說鍵盤一打字,所有控制項的鍵盤事件都執行。
鍵盤只會喚起是輸入焦點的控制項的鍵盤事件程式碼來執行
可以用 物件名稱 . Focus(); 來指定焦點放在該物件上
![Page 5: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/5.jpg)
鍵盤事件 - 課堂範例 程式功能
拉兩個 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#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/6.jpg)
鍵盤事件 - 課堂範例 程式功能
比較 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#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/7.jpg)
鍵盤事件 KeyEventArgs 物件
當一個鍵按下的時候,你會得到一個 KeyEventArgs 物件 屬性
Keys KeyCode 是哪一個鍵被按了 bool Shift Shift 是否有被按 bool Control Ctrl 是否有被按 bool Alt Alt 是否有被按
![Page 8: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/8.jpg)
鍵盤事件 Keys 列舉
.Net Framework 中內建的一個超大列舉 是紀錄著鍵盤與其代碼對應的表格 打” Keys.” 即會出現一大堆選擇項目,全都是鍵盤上
的對應鍵 (int)Keys.A 可將 Keys.A 轉為整數型態,即為 65 Convert.ToString(Keys.A) 轉為字串型態,即
為” A”
![Page 9: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/9.jpg)
鍵盤事件 KeyEventArgs 物件
當我們用 KeyDown 、 KeyUp 時系統會回傳鍵盤物鍵 KeyEventArgs 給我們
KeyEventArgs 的其中一個屬性 KeyCode 就是Keys 型態的
透過讀取 KeyEventArgs 的 KeyCode 屬性值,我們可以知道使用者按了哪一個鍵
![Page 10: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/10.jpg)
鍵盤事件 - 課堂範例 程式功能
將使用者目前在 TextBox 打的字,其印在 Label 上 程式內容 拉一個 TextBox 和 Label 在 TextBox 的 KeyDown 事件程式碼中打入
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{label1.Text =Convert.ToString(e.KeyCode);
}
![Page 11: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/11.jpg)
鍵盤事件 - 課堂範例 程式功能
將使用者目前在 TextBox 打的字,其印在 Label 上 程式內容 拉一個 TextBox 和 Label 在 TextBox 的 KeyPress 事件程式碼中打入
private void textBox1_KeyDown(object sender, KeyPressEventArgs e)
{label1.Text =Convert.ToString(e.KeyChar);
}
![Page 12: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/12.jpg)
鍵盤事件 - 課堂練習 程式功能
拉三個 TextBox ,讓使用者可以再按了 Enter 後就將焦點跳到下一個 TextBox
![Page 13: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/13.jpg)
鍵盤事件 - 課堂練習 程式功能
寫一個程式,有一個 TextBox 和一個 Label 讓 TextBox 為焦點的時候不論打甚麼鍵, Label 都可以顯示出那
個鍵,字母的大小寫也會區分
![Page 14: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/14.jpg)
Outline 鍵盤事件 檔案存取 動態產生控制項與事件程式碼
![Page 15: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/15.jpg)
檔案存取 檔案的讀取寫入指令
System.IO.File.WriteAllText( 檔案路徑 , 文字內容 ); 要存 text 的地方 =System.IO.File.ReadAllText( 檔案
路徑 );
![Page 16: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/16.jpg)
檔案存取 - 課堂範例 程式功能
將 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#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/17.jpg)
檔案存取 - 課堂範例 程式功能
將 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#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/18.jpg)
檔案存取 OpenFileDialog 控制項
C# 內建的開檔對話視窗 提供了方便的檔案瀏覽與選擇的功能 請注意,他並不會幫你真的完成開檔的功能
![Page 19: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/19.jpg)
檔案存取 OpenFileDialog 控制項
用 “ OpenFileDialog 物件名稱 .ShowDialog()” 可把對話框打開
“OpenFileDialog 物件名稱 .ShowDialog()” 有回傳值,判斷回傳值即可知使用者是否按了確定
回傳值為 DialogResult 型別
![Page 20: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/20.jpg)
檔案存取 - 課堂範例
![Page 21: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/21.jpg)
檔案存取 - 課堂練習 程式功能
建立一個 TextBox 建立可讀寫檔案的功能
![Page 22: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/22.jpg)
檔案存取 MenuStrip 控制項
主功能表的控制項 支援多下拉多個選項的功能
![Page 23: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/23.jpg)
檔案存取 MenuStrip 控制項
很方便的可創造出多個選項 Double-click 你創造好的選項即可編寫程式碼
![Page 24: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/24.jpg)
檔案存取 - 課堂範例 程式功能
建立一個 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#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/25.jpg)
檔案存取 - 課堂練習 程式功能
將開檔讀檔功能建立進 MenuStrip 裡
![Page 26: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/26.jpg)
檔案存取 PictureBox 控制項
可用來放 Gif 、 Jpeg 等圖檔 屬性
Image- 設定想要放置的圖片 SizeMode- 調整圖片在控制項中的呈現方式
![Page 27: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/27.jpg)
檔案存取 PictureBox 控制項
動態讀取圖檔 pictureBox1.Image =
system.Drawing.Image.FromFile(“c:\\mypicture.jpg”);
![Page 28: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/28.jpg)
檔案存取 - 課堂練習 程式功能
有動態讀取圖片的功能的程式 可透過 MenuStrip 及 OpenFileDialog 來讀圖檔
![Page 29: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/29.jpg)
檔案存取 - 課堂練習 程式功能
紅綠燈 紅燈 3 秒,綠燈 5 秒,黃燈 1 秒
提示 利用 Timer 來做
![Page 30: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/30.jpg)
Outline 鍵盤事件 檔案存取 動態產生控制項與事件程式碼
![Page 31: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/31.jpg)
動態產生控制項與事件程式碼 除了在設計畫面下自己拉控制項以外,控制項可以動
態產生 語法
物件類別 物件名稱 =new 物件類別 (); Controls.Add( 物件名稱 );
![Page 32: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/32.jpg)
動態產生控制項與事件程式碼 - 範例 程式功能
按下 button 時則產生一個 TextBox 程式內容
private void button1_Click(object sender, EventArgs e){
TextBox t1 = new TextBox(); Controls.Add(t1);}
![Page 33: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/33.jpg)
動態產生控制項與事件程式碼 - 練習 程式功能
按下 button 時則產生一個 TextBox ,並置於表單中間 提示
利用 Top,Left 屬性控制位置 用 this.size 來得到表單的長寬
![Page 34: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/34.jpg)
動態產生控制項與事件程式碼 我們還可以幫這些動態產生的控制項加事件 語法
物件名稱 .事件名稱 +=new EventHandler(函式名稱 );
然後在下面寫一個處理函式 這個函式除了名字外,其他參數等都要和正式的事件處理函式一樣
![Page 35: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/35.jpg)
動態產生控制項與事件程式碼 - 範例 程式功能
按下 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#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/36.jpg)
動態產生控制項與事件程式碼 - 練習 程式功能
建立一個 button 按下 button 時則產生一個 PictureBox ,並 load 一張圖
到其上
![Page 37: .NET 程式設計入門 ( 使用 C#)](https://reader037.fdocument.pub/reader037/viewer/2022102602/56813bf5550346895da53a6d/html5/thumbnails/37.jpg)
課後作業 計算機
具有 10 個數字鍵 具有加減乘除、 mod 鍵、等於鍵、清除鍵 按按鍵也可以輸入