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以外的文字,換句話說就是只顯示數字
留言
張貼留言