回复 6楼iceman的帖子
首先感谢版主提供的思路![](https://gcdn-cdn.grapecity.com.cn/static/image/smiley/bigbig/2012-08-06_23-57-51.gif)
按版主提供的思路亲自试了一下,比较完美实现了,现将几个要注意的细节贴了来,省得大家走弯路,呵呵
我在测试的过程中发现 获取回车键给flag字段赋值的事件必须是KeyDownEdit事件和KeyDown事件,如果在KeyDown事件中赋值,在不修改单元格时直接回车是可以的,但如编辑单元格后再回车,则不行(估计是没有取到回车符),后来反复测试了多个事件,最终在这两事件中对flag赋值就可以了
- private void grid1_RowColChange(object sender, EventArgs e)
- {
- NewMethod();
- flag = false;
- }
- private void NewMethod()
- {
- if (flag == true)
- {
- int i = grid1.Col;
- if (grid1.Cols[i].Visible == false || grid1.Cols[i].AllowEditing == false)//如此列不可见或是不可编辑则跳到下一列
- {
- if (i < grid1.Cols.Count)
- {
- grid1.Col = ++i;
- NewMethod();//递归
- }
- }
- }
- }
- private void grid1_KeyDownEdit(object sender, C1.Win.C1FlexGrid.KeyEditEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- this.flag = true;
- }
- private void grid1_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- this.flag = true;
- }
- }
- }
复制代码 |