Form中的如下代码将回车转换为tab键:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{ if (keyData == Keys.Enter)
{
System.Windows.Forms.SendKeys.Send("{tab}");
return true;
}
if (keyData == Keys.Escape)
{
this.Close();
return true;
} return base.ProcessCmdKey(ref msg, keyData);
}
但是在按钮上敲回车通常不做这样的转换,怎么办呢?
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{ if (keyData == Keys.Enter)
{
System.Windows.Forms.SendKeys.Send("{tab}");
return true;
}
if (keyData == Keys.Escape)
{
this.Close();
return true;
} return base.ProcessCmdKey(ref msg, keyData);
}
但是在按钮上敲回车通常不做这样的转换,怎么办呢?
解决方案 »
- WPF中DataGrid绑定List<T>怎么没成功?
- ~~~~~~~~~~~~~~~~请教,app.config文件要放在什么地方,放在同一个目录下读不到。
- 请教一个排名问题如何实现好
- .net中有关数据备份与恢复的问题,求教!
- 关于System.Reflection.PropertyInfo 的setvalue,如果属性是集合类型,应如何赋值?
- 按钮的命名问题 还请高手多多帮忙!
- 急求!!!请教高手,如何合并两个表的内容?在DataSet中
- 关于窗体显示的问题???
- 大神帮忙解决下。。。 尝试读取或写入受保护的内存。这通常指示其他内存已损坏
- 请问从C++和C#在数据类型上有什么样得区别啊?
- App.config 文件需要自己添加吗?
- 请提供扑克牌图片
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if((this.按钮1.Focused) || (this.按钮2.Focused))
{
return false;
}
else
{
if(keyData == Keys.Enter)
{
SendKeys.Send("{TAB}");
return true;
}
}
return false;
}
偶的做法是继承 textBox 控件,并 override textBox 的ProcessCmdKey,
封装出一个自己的textBox控件.
wmt85(深山老翁) :重写的方法不应该直接访问按钮的
leo2003(C# Coder) :代码改动量太大了不能根据ref Message msg判断消息源的类型吗?