找回密码
 立即注册

QQ登录

只需一步,快速开始

zhangyi
初级会员   /  发表于:2013-12-8 19:06:00
11#
回复 6楼iceman的帖子

     首先感谢版主提供的思路
按版主提供的思路亲自试了一下,比较完美实现了,现将几个要注意的细节贴了来,省得大家走弯路,呵呵
我在测试的过程中发现 获取回车键给flag字段赋值的事件必须是KeyDownEdit事件和KeyDown事件,如果在KeyDown事件中赋值,在不修改单元格时直接回车是可以的,但如编辑单元格后再回车,则不行(估计是没有取到回车符),后来反复测试了多个事件,最终在这两事件中对flag赋值就可以了
  1.         private void grid1_RowColChange(object sender, EventArgs e)
  2.         {
  3.             NewMethod();
  4.             flag = false;
  5.         }

  6.         private void NewMethod()
  7.         {
  8.             if (flag == true)
  9.             {
  10.                 int i = grid1.Col;
  11.                 if (grid1.Cols[i].Visible == false || grid1.Cols[i].AllowEditing == false)//如此列不可见或是不可编辑则跳到下一列
  12.                 {
  13.                     if (i < grid1.Cols.Count)
  14.                     {
  15.                         grid1.Col = ++i;
  16.                         NewMethod();//递归
  17.                     }
  18.                 }
  19.             }
  20.         }

  21.         private void grid1_KeyDownEdit(object sender, C1.Win.C1FlexGrid.KeyEditEventArgs e)
  22.         {
  23.             if (e.KeyCode == Keys.Enter)
  24.             {
  25.                 this.flag = true;
  26.             }
  27.         private void grid1_KeyDown(object sender, KeyEventArgs e)
  28.         {
  29.             if (e.KeyCode == Keys.Enter)
  30.             {
  31.                 this.flag = true;
  32.             }
  33.         }
  34.         }
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-9 10:40:00
12#
回复 11楼zhangyi的帖子

感谢完善问题解决方法。谢谢
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部