.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中內建的一個超大列舉 是紀錄著鍵盤與其代碼對應的表格 (int)Keys.A可將Keys.A轉為整數型態,即為65 Convert.ToString(Keys.A)轉為字串型態,即為”A”
鍵盤事件 KeyEventArgs物件 KeyEventArgs的其中一個屬性KeyCode就是Keys 型態的 當我們用KeyDown、KeyUp時系統會回傳鍵盤物 鍵KeyEventArgs給我們 KeyEventArgs的其中一個屬性KeyCode就是Keys 型態的 透過讀取KeyEventArgs的KeyCode屬性值,我們 可以知道使用者按了哪一個鍵
鍵盤事件-課堂範例 程式功能 程式內容 拉一個TextBox和Label 在TextBox的KeyDown事件程式碼中打入 private void textBox1_KeyDown(object sender, KeyEventArgs e) { label1.Text =Convert.ToString(e.KeyCode); }
鍵盤事件-課堂範例 程式功能 程式內容 拉一個TextBox和Label 在TextBox的KeyPress事件程式碼中打入 private void textBox1_KeyDown(object sender, KeyPressEventArgs e) { label1.Text =Convert.ToString(e.KeyChar); }
鍵盤事件-課堂練習 程式功能 拉三個TextBox,讓使用者可以再按了Enter後就將焦點跳到 下一個TextBox
鍵盤事件-課堂練習 程式功能 寫一個程式,有一個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()”可把對話框打開 回傳值為DialogResult型別
檔案存取-課堂範例 程式功能 程式內容 建立一個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; }
檔案存取-課堂練習 程式功能 建立一個TextBox 建立可讀寫檔案的功能
檔案存取 MenuStrip控制項 主功能表的控制項 支援多下拉多個選項的功能
檔案存取 MenuStrip控制項 很方便的可創造出多個選項 Double-click你創造好的選項即可編寫程式碼
檔案存取-課堂範例 程式功能 程式內容 建立一個MenuStrip,含有一個下拉選項 下拉選項有兩欄,開檔和讀檔 建立一個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鍵、等於鍵、清除鍵 按按鍵也可以輸入