none
关于datagridview单元格焦点的问题? RRS feed

  • 问题

  • datagridview默认情况下是将焦点放在第0行、第0列的单元格,现在我想自己设定单元格的焦点,比如开始时将焦点方法第x行,第y列该怎么做?
    把向往的风景变成走过的地方!
    2011年3月15日 8:15

答案

  • 你好!

    设置 CurrentCell 可以达到定位焦点单元格的作用,若需要直接进入编辑状态则需要使用 BeginEdit(false) 方法,但在 FormLoad 事件中调用此方法不能达到预期效果(可能是被抢了焦点),使用延时技艺能够解决此问题。

    void SetFocusedCell(DataGridView gv, DataGridViewCell cell)
    {
      using (BackgroundWorker bg = new BackgroundWorker())
      {
        bg.DoWork += (o, e) => { System.Threading.Thread.Sleep(5); };
        bg.RunWorkerCompleted += (o, e) =>
        {
          gv.CurrentCell = cell;
          gv.BeginEdit(false);
        };
        bg.RunWorkerAsync();
      }
    }
    


    知识改变命运,奋斗成就人生!
    2011年3月16日 15:15
    版主

全部回复

  • 你好!

    设置 CurrentCell 可以达到定位焦点单元格的作用,若需要直接进入编辑状态则需要使用 BeginEdit(false) 方法,但在 FormLoad 事件中调用此方法不能达到预期效果(可能是被抢了焦点),使用延时技艺能够解决此问题。

    void SetFocusedCell(DataGridView gv, DataGridViewCell cell)
    {
      using (BackgroundWorker bg = new BackgroundWorker())
      {
        bg.DoWork += (o, e) => { System.Threading.Thread.Sleep(5); };
        bg.RunWorkerCompleted += (o, e) =>
        {
          gv.CurrentCell = cell;
          gv.BeginEdit(false);
        };
        bg.RunWorkerAsync();
      }
    }
    


    知识改变命运,奋斗成就人生!
    2011年3月16日 15:15
    版主
  • 谢谢你!!!
    把向往的风景变成走过的地方!
    2011年3月21日 7:18
  • 不客气啊~~
    知识改变命运,奋斗成就人生!
    2011年3月21日 8:10
    版主