dataGridView中 按回车键跳转到 指定单元格的方法!
来源:互联网 发布:linux 禁止用户登录 编辑:程序博客网 时间:2024/05/22 10:43
首先写上本人软件中,解决此问题的代码:
/// <summary> /// 设置编辑状态下按回车键,跳到指定单元格. /// </summary> protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Enter) //监听回车事件 { if (this.dataGridView1.IsCurrentCellInEditMode) //如果当前单元格处于编辑模式 { if (this.dataGridView1.CurrentCell.ColumnIndex != 12) { SendKeys.Send("{Up}"); SendKeys.Send("{Tab}"); SendKeys.Send("{Tab}"); } else { SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); SendKeys.Send("{LEFT}"); } } else { SendKeys.Send("{Up}"); SendKeys.Send("{Tab}"); SendKeys.Send("{Tab}"); SendKeys.Send("{Tab}"); } } //继续原来base.ProcessCmdKey中的处理 return base.ProcessCmdKey(ref msg, keyData); }
下面内容,来源于网络:
在使用datagridview控件时,默认按回车是跳转到下一行的当前列的,要想让按回车跳转到同一行的下一列该怎么做呢?百度搜索了一下,大都是使用该控件的key_down事件和CellEndEdit进行处理,我都试验了一下,全都不行,不能达到预期的效果,而且使原来的方向键
dataGridView使用指南系列一、回车换行或换列完美解决方案
在使用datagridview控件时,默认按回车是跳转到下一行的当前列的,要想让按回车跳转到同一行的下一列该怎么做呢?
百度搜索了一下,大都是使用该控件的key_down事件和CellEndEdit进行处理,我都试验了一下,全都不行,不能达到预期的效果,而且使原来的方向键的功能也搞乱了。
找了半天,最后终于找到一个有效的方法(注:不是我发明的),重载窗体的ProcessCmdKey事件,代码如下:
代码
bool enterkey;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
enterkey = false;
if (keyData == Keys.Enter) //监听回车事件
{
if (this.gvGzb.IsCurrentCellInEditMode) //如果当前单元格处于编辑模式
{
enterkey = true; //把是否点击按钮设置为真
if (btnSetEnter.Text != "竖")
if (gvGzb.CurrentCell.RowIndex == gvGzb.Rows.Count - 1)
{
//SendKeys.Send("{Up}");
SendKeys.Send("{Tab}");
}
else
{
SendKeys.Send("{Up}");
SendKeys.Send("{Tab}");
}
}
}
//继续原来base.ProcessCmdKey中的处理
return base.ProcessCmdKey(ref msg, keyData);
}
以上代码只处理编辑状态下的回车事件,在普通状态下的回车事件就要用key_down事件处理了:
代码private void gvGzb_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode == Keys.Return) && (btnSetEnter.Text != "竖"))
{
SendKeys.Send("{Tab}");
e.Handled = true;
if ((gvGzb.FirstDisplayedScrollingColumnHiddenWidth > 0) && !gvGzb.Columns[gvGzb.SelectedCells[0].ColumnIndex].Frozen)
{
gvGzb.FirstDisplayedScrollingColumnIndex = gvGzb.SelectedCells[0].ColumnIndex;
}
}
}
上面的FirstDisplayedScrollingColumnIndex属性设置,是为了在datagirdview的列很多的情况下,按回车换列将滚动条后面的列自动显示出来,如下图,我用net做的简易工资管理系统,有很多项,如果不设置的话,最后一列只能看到一半。
- dataGridView中 按回车键跳转到 指定单元格的方法!
- DataGridView中回车键的妙用
- 关于DataGridView中键盘输入时的单元格跳转
- 按回车键自动跳转到下一个文本框
- C#中datagridview使用tooltip控件显示单元格内容与datagridview自带的tooltip显示单元格内容的方法
- DataGridView 中单元格显示不一样颜色方法
- dataGridView中设置光标到指定的行
- DataGridView的单元格内容即时更新方法
- ProcessCmdKey方法让DataGridView按Enter回车键转到下一列的格
- ProcessCmdKey方法 DataGridView按Enter回车键转到下一列的格
- ios 应用中直接跳转到指定app页面 或者 app 评价页面 的方法
- ios 应用中直接跳转到指定app页面 或者 app 评价页面 的方法
- ios 应用中直接跳转到指定app页面 或者 app 评价页面 的方法
- ios 应用中直接跳转到指定app页面 或者 app 评价页面 的方法
- ios 应用中直接跳转到指定app页面 或者 app 评价页面 的方法
- ios 应用中直接跳转到指定app页面 或者 app 评价页面 的方法
- DataGridView编辑后立即更新到数据库的两种方法 编辑单元格
- DataGridView的单元格中表示ToolTip
- 使用JAX-WS开发Web Service
- Linux中的Socket编程(不限Linux)
- 简化的第一个窗体事件
- php 返回json对象
- ibatis中#与$的区别
- dataGridView中 按回车键跳转到 指定单元格的方法!
- UVa 10236 - The Fibonacci Primes(斐波那契素数)
- 数据结构笔记-算法时间复杂度分析
- 星号图2
- Linux的swap分区大小的调整
- 使用过的Makefile例子
- hash_map一些纠结的问题
- Windows RT和Windows 8有什么区别
- ActiveMQ学习(一)——MQ的基本概念