想问一下各位大大…
要怎么在datagrid控件下载取tab键和向右的方向键呀??
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
MessageBox.Show(e. KeyData.ToString());
if( e. KeyData == Keys.Right)
{
MessageBox.Show("此为向右方向键");
}
if(e.KeyData == Keys.tab)
{
MessageBox.Show("此为Tab键");
}
}
我这样写它好像都没反应耶??(我用的是c# 2003的唷!
要怎么在datagrid控件下载取tab键和向右的方向键呀??
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
MessageBox.Show(e. KeyData.ToString());
if( e. KeyData == Keys.Right)
{
MessageBox.Show("此为向右方向键");
}
if(e.KeyData == Keys.tab)
{
MessageBox.Show("此为Tab键");
}
}
我这样写它好像都没反应耶??(我用的是c# 2003的唷!
this.dataGrid1.KeyDown += new KeyEventHandler(Form1_KeyDown);
不好意思,因为用call的,所以没有去换名称啦*.*
private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
MessageBox.Show(e.KeyData.ToString());
if (e.KeyData == Keys.Right)
{
MessageBox.Show("此为向右方向键");
}
if (e.KeyData == Keys.Tab)
{
MessageBox.Show("此为Tab键");
}
}
所选事件不对,应该用PreviewKeyDown
测试可以.
这个事件是 .NET Framework 2.0 版的新功能。
我用的是C# 2003 .NET Framework 1.1所以没有这个功能!!
{
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Right)
{
MessageBox.Show("此为向右方向键");
}
if (keyData == Keys.Tab)
{
MessageBox.Show("此为Tab键");
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
我还是弄不出来耶!
类似:
private void Form1_Load(object sender, System.EventArgs e)
{
MyDataGrid mytest = new MyDataGrid();
this.dataGrid1.KeyDown += new KeyEventHandler(Form1_KeyDown);
}
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
Message msg = new Message();
if (ProcessCmdKey(ref msg,e.KeyData))
MessageBox.Show(ProcessCmdKey(ref msg,e.KeyData).ToString());
}