我用了一个DataGridView控件,把它设为只读,当选中某一行时,就把那一行的数据显示在当前窗体的一些textBox中,我想当我修改后,DataGridView的焦点移到我修改的那一行。
还有,怎么样才能使DataGridView一加载时没有焦点

解决方案 »

  1.   

    1 当选中行集合不为空时,使选中行为其中的第一行[0]
    2 选中行为第RowIndex行(加上 ColumnIndex即为单元格)
      
       --》然后可把选中的那一行的数据显示在当前窗体的一些textBox中
    3 数据加载完成后,将焦点移走 --》  能使DataGridView一加载时没有焦点
      

  2.   

    不过DataGridView的实时性不太好,由于数据是缓存的要实时反应变化可选用ListView
      

  3.   

    我想一开始加载时没有焦点,(未解决)
    但是我选中了一行,对应的信息显示在对应 的textBox中,(这个已解决)
    修改选中行的信息之后,把DataGridView的焦点移到修改的一行,不要移到Rows[0].cell[0](未解决)
    同理,我想在textBox中填写信息后点击增加的按纽时,DataGridView的焦点移到新增的一行(未解决)
    不好意思,问题没有说清楚,十分抱歉!
      

  4.   

    我还是描述错了,是一开始没有选中任何行(我默认是选中整行的),(未解决)
    但是我选中了一行,对应的信息显示在对应 的textBox中,(这个已解决) 
    修改选中行的信息之后,DataGridView的选中行(突出蓝色的一行)移到修改的一行,不要移到第0行(未解决)
    同理,我想在textBox中填写信息后点击增加的按纽时,DataGridView的选中行(突出蓝色的一行)移到新增的一行(未解决)
      

  5.   

    没有选中任何行:dv.rows[0].cells[0].selected=false;默认为选中第一行第一格,取消选中就可以了
    移动修改的行:多写几句代码,多写几个参数,如果不行再加上删除行增加行,应该肯定能解决的
    移到末尾也是这样,没有现成的方法,多写几句code吧
      

  6.   

    > 一开始没有选中任何行(我默认是选中整行的),(未解决) 
    dv.rows[0].cells[0].selected=false;  楼上正解;>修改选中行的信息之后,DataGridView的选中行(突出蓝色的一行)移到修改的一行,不要移到第0行(未解决)
    //取得你修改的那行的index
      int selectCurrentRow = this.dataGridView1.CurrentRow.Index;
    //当数据刷新后,控制选中焦点到编辑行
      this.dataGridView1.Rows[selectCurrentRow].Selected = true;同理:1.如果是新增数据,刷新dg后,要将当前行移到新增数据那行
      int rowCount = this.dataGridView1.Rows.Count;
      this.dataGridView1.Rows[rowCount-1].Selected = true;     2.如果是删除数据...也一样很容易编码的,只要保存好你之前选中行的INDEX就可以,你想放哪都可以,呵呵