Download presentation
Presentation is loading. Please wait.
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中內建的一個超大列舉 是紀錄著鍵盤與其代碼對應的表格
(int)Keys.A可將Keys.A轉為整數型態,即為65 Convert.ToString(Keys.A)轉為字串型態,即為”A”
9
鍵盤事件 KeyEventArgs物件 KeyEventArgs的其中一個屬性KeyCode就是Keys 型態的
當我們用KeyDown、KeyUp時系統會回傳鍵盤物 鍵KeyEventArgs給我們 KeyEventArgs的其中一個屬性KeyCode就是Keys 型態的 透過讀取KeyEventArgs的KeyCode屬性值,我們 可以知道使用者按了哪一個鍵
10
鍵盤事件-課堂範例 程式功能 程式內容 拉一個TextBox和Label 在TextBox的KeyDown事件程式碼中打入
private void textBox1_KeyDown(object sender, KeyEventArgs e) { label1.Text =Convert.ToString(e.KeyCode); }
11
鍵盤事件-課堂範例 程式功能 程式內容 拉一個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
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()”可把對話框打開
回傳值為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
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鍵、等於鍵、清除鍵 按按鍵也可以輸入
Similar presentations