C# 監聽滑鼠移動及keyin文字(一)
一、監聽滑鼠移動,新增一個label,並啟動Form1的 MouseMove事件
private void Form1_MouseMove(object sender, MouseEventArgs e) { label1.Text = String.Format("X:{0}, Y:{1}", e.X, e.Y); }
的 e.X ,e.Y 位置。
補充:所有視窗程式設計(C# ,vb,android,java.....)計算視窗座標都是由左上角為基準(0,0)
二、監聽視窗中滑鼠移動的位置及按下對應的滑鼠按鍵
private void Form1_MouseDown(object sender, MouseEventArgs e) { String s=""; switch (e.Button) { case System.Windows.Forms.MouseButtons.Left: s = "左鍵"; break; case System.Windows.Forms.MouseButtons.Middle: s = "中間鍵"; break; case System.Windows.Forms.MouseButtons.Right: s = "右鍵"; break; } label2.Text = String.Format("按了{0}於 X:{1}, Y:{2}", s, e.X, e.Y); }
說明:利用switch來判斷e.Button按下的是那個按鍵
需要注意的是,判讀的值在System.Windows.Forms.MouseButtons 裡對應
三、監聽視窗 按下按鍵(KeyDown)
private void Form1_KeyDown(object sender, KeyEventArgs e) { label3.Text = String.Format("按了 {0} 鍵,鍵碼:{1}", e.KeyCode, e.KeyValue); //監聽按下的鍵值 if (e.Control && e.Alt && e.KeyCode== Keys.H) MessageBox.Show("哈哈哈!");//若按下Ctrl + Alt + H else if (e.Control && e.Alt && e.KeyCode == Keys.E)//若按下Ctrl + Alt + E { DialogResult ans=MessageBox.Show("請問是否結束本程式?", "結束", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //跳出訊息視窗,取得 DialogResult ans的結果 if (ans == System.Windows.Forms.DialogResult.Yes) { Application.Exit(); } } switch (e.KeyData) {//監聽上、下、左、右來移動圖片 case Keys.Up: PicLabel.Top -= PicLabel.Height / 2; break; case Keys.Down: PicLabel.Top += PicLabel.Height / 2; break; case Keys.Left: PicLabel.Left -= PicLabel.Width / 2; break; case Keys.Right: PicLabel.Left += PicLabel.Width / 2; break; } }說明:KeyDown與KeyPress不同在於:
KeyDown可聽功能鍵(如Ctrl Alt F1....)
KeyPress是聽輸入的文字(數字、字母或特殊符號)
四、監聽視窗 按下按鍵(KeyPress)
private void Form1_KeyPress(object sender, KeyPressEventArgs e) { label4.Text = String.Format("打了 {0} ,字碼:{1}", e.KeyChar, (int)e.KeyChar); } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (!(e.KeyChar >= '0' && e.KeyChar <= '9')) { e.Handled = true; } }說明:這裡的textBox1,會排除0~9以外的文字,換句話說就是只顯示數字
留言
張貼留言