我想编辑datagridview1数据时,按上下移动另一个datagridview2的行,按了“下键”后,datagridview2的确移动了,但是datagridview1也同时向下,请问怎样做datagridview1才不往下移动?private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            try
            {
                if (b)
                {
                    DataGridViewTextBoxEditingControl editingControl = e.Control as DataGridViewTextBoxEditingControl;                    b = false;                    editingControl.TextChanged += new EventHandler(editingControl_TextChanged);
                    editingControl.PreviewKeyDown += new PreviewKeyDownEventHandler(editingControl_PreviewKeyDown);
                    
                }
            }
            catch { }
        }void editingControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            try
            {
                System.Diagnostics.Debug.WriteLine(e.KeyData);
                if (e.KeyCode == Keys.Down && dataGridView1.CurrentCell.ColumnIndex == 0)
                {
                    if (zddgv.CurrentRow.Index + 1 < zddgv.Rows.Count)
                    zddgv.CurrentCell = zddgv[0, zddgv.CurrentRow.Index + 1];
                else zddgv.CurrentCell = zddgv[0, 0];
                    
                }             }
             catch { }
        }

解决方案 »

  1.   

    你2个datagridview都绑定一个dataset吗?
      

  2.   

    回楼上,不同的~我想实现选中datagridview2的某行后,按回车后自动填充到datagridview1
      

  3.   

    没看懂你题目。你是不是要把你选中的那行数据填充到datagridview1 中就行了?
      

  4.   

    没看懂你题目。你是不是要把你选中的那行数据填充到datagridview1 中就行了?
      

  5.   

    没看懂你题目。你是不是要把你选中的那行数据填充到datagridview1 中就行了?不好意思 上面都是我跟的。别人登了id没注销
      

  6.   

    如果是直接取出那行数据的对象add到Arraylist 然后把这arraylist 作为datagridview1数据源就行了。。
      

  7.   

    “编辑datagridview1数据时,按上下移动另一个datagridview2的行”
    你意思是,focus在datagridview1按上下移动datagridview2的rowselect?然后focus在datagridview1按Enter把datagridview2的rowselect复制到datagridview1?
    还是datagridview1确实进入了编辑状态而进行上下移动和enter操作?
      

  8.   

    ACU(聪明仔)有点懂我意思了~是datagridview1确实进入了编辑状态而进行上下移动和enter操作
    就是在datagridview的单元格编辑时,按上下键时,datagridview1的光标或焦点不移动,datagridview2的行改变~然后按回车后,datagridview2的数据传到datagridview1当前编辑的单元格所在的行~
      

  9.   

            private void dataGridView_KeyUp(object sender, KeyEventArgs e)
            {
               // KeyUp事件 
                if   (e.KeyCode   ==   Keys.Down   ||  e.Modifiers   ==   Keys.Up ) 
                 {
                   让 GridView2移动的代码            
                 }
                if   (e.KeyCode   ==   Keys.Enter)
                 {
                   GridView2数据复制过来
                       }
      

  10.   

    上面写错了
    private void dataGridView_KeyUp(object sender, KeyEventArgs e)
      {
      // KeyUp事件  
      if (e.KeyCode == Keys.Down)
      {
      让 GridView2移动的代码   
      }
    这样我试过了,当然还缺了判断dataGridView是否在编辑状态的代码
      

  11.   

    那简单了,启动编辑的cell本来就是一个object或者说是control,给这个control定制按钮事件就可以捕获了。让编辑对象订立PreviewKeyDown事件:
    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {            
                e.Control.PreviewKeyDown += new PreviewKeyDownEventHandler(editControl_PreviewKeyDown);
            }编辑cell的内部按钮事件,在这里写你要的就可以了
    private void editControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
            {
                MessageBox.Show(e.KeyData.ToString());        }
      

  12.   

    本来想用e.SuppressKeyPress = true;拦截响应,但很意外的是进入编辑模式居然不响应,郁闷,还要找其他途径