问题一、KeyDown、KeyPress、KeyUp这三个事件,响应顺序为KeyDown>KeyPress>KeyUp,KeyDown最先响应。
问题二、三、四、看看http://expert.csdn.net/Expert/topic/1609/1609568.xml?temp=.3233148
问题二、三、四、看看http://expert.csdn.net/Expert/topic/1609/1609568.xml?temp=.3233148
你链接的帖子我以前就看过了,我认为说明不了我想要问的问题。
在MessageBox中将这个结果显示,看谁是2,谁是3。
<INPUT type="text" id="ttt" title="2003-4-24" onkeydown="press(this);return false;" style="WIDTH: 120px" value="" name="text1">
<script>
function press(obj)
{
if(event.ctrlKey&&event.repeat)
{
if(event.keyCode == 83)
{
alert("ctrl + s");
}
}
}
if(e.KeyChar == (char)19){ //CTRL+S
MessageBox.Show("给分");
}
}private void button1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) {
if (e.KeyData == (Keys.Control | Keys.S)){
MessageBox.Show("给分");
} if (e.KeyCode == Keys.S){
MessageBox.Show("给分");
}
}
System.Windows.Forms.KeyEventArgs 的成员获取System.Windows.Forms.Control.KeyDown或System.Windows.Forms.Control.KeyUp事件的修饰符标志。这指示曾按下哪一个修饰符键(CTRL、SHIFT 和 ALT)的组合。
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
Keys key=e.Modifiers;
if(key==Keys.Shift)
{
MessageBox.Show("按了shift键");
}
else if(key==Keys.Control)
{
MessageBox.Show("按了ctrl键");
}
else if(key==Keys.Alt)
{
MessageBox.Show("按了alt键");
}
}