Form窗体上有个DataGridView控件,和“确定”、“取消”按钮。
DataGridView.ReadOnly = true;// 只读,用于选取记录。
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;// “确定”铵钮
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;// “取消”按钮
this.AcceptButton = this.btnOK;// 已设置窗体默认按钮。
this.CancelButton = this.btnCancel;
DataGridView控件获得焦点后,当用户用方向键“↑”、“↓”选定了记录时,按下“回车”键却跳到了下一行记录。
我希望按“回车”键后响应“确定”按钮,请问要如何实现?
DataGridView.ReadOnly = true;// 只读,用于选取记录。
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;// “确定”铵钮
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;// “取消”按钮
this.AcceptButton = this.btnOK;// 已设置窗体默认按钮。
this.CancelButton = this.btnCancel;
DataGridView控件获得焦点后,当用户用方向键“↑”、“↓”选定了记录时,按下“回车”键却跳到了下一行记录。
我希望按“回车”键后响应“确定”按钮,请问要如何实现?
解决方案 »
- asp.net mvc3 使用ext.net怎么不能显示控件,而webForm就行,哪位大虾知道么?
- DataGridView控件问题?
- C#关于sql2005中表的ID重新排列问题
- 菜鸟发问:一个窗口关闭后怎样同时打开另一个窗口
- (100分)对挂起的线程怎样使它快速终止呀~~谢啦`~~~
- C#(web)中当DataGrid有两个(或以上)相同的命令名时,如何处理
- 字符串(如:2000-5-6)如果转化为日期类型。
- 请教各位大哥: 为啥设定Timer定时器时不产生一个新的线程,而要到执行Callback时才产生一个线程呢?
- TreeView与DataGrid中数据的对应问题,up有分
- chartControl制作饼状图百分比不能精确到小数后的问题!!!!?请高手指点啊!!!!!!
- 大家都用什么记录自己的代码、经验?
- SendInput 输入组合键 shift,scancode不能识别正确vkcode
给窗体加个 KeyUp 事件 void Form2_KeyUp(object sender, KeyEventArgs e)
{
btnOK.PerformClick();
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// do sth
}
}
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
button_Click(this.button, new EventArgs());
}
}
{
if (e.KeyCode == Keys.Enter)
{
btnOK.PerformClick();
}
}
不过我的DataGridView控件做成了用户自定义类,所有窗口调用了此类。
DataGridView控件为只读状态并获得焦点敲“回车”时,要执行窗体默认按钮,要如何做到这种通用呢?
不希望每个窗体都去增加代码。
在 DataGridView控件为只读状态并获得焦点敲“回车”时 调用哪个委托在每个加载DataGridView控件 的Form 中 将默认按钮的单击事件赋给委托
正好手头有一个VB.net的类,因本人比较懒,就不用C#重写了 Public Class datagridviewX
Inherits DataGridView '继承dataGridView Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If keyData = Keys.Enter Then
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class继承,重写datagirdview类,编译后,把这个类拖到窗体上就行了。这样,按回车后,记录不会往下移,关于ENTER的捕捉事件就如4楼的兄弟说的那样就行了。
{
if (keyData == Keys.Enter)
return true;
else
return base.ProcessCmdKey(ref msg, keyData);
}
不知道有没有什么方法在DataGridView自定义类中一次解决?
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Control c = sender as Control;
if (c != null)
{
Form f = c.FindForm();
f.AcceptButton.PerformClick();
}
}
}