2009-04-24 51 views
1

我正在創建DataGridViewEx類,它繼承自DataGridView。
我想創建一個當前行中選擇第一個單元格的方法,所以我寫了這個:DataGridView:如何在MultiSelect爲true時選擇當前行中的第一個單元格

 /// <summary> 
    /// The method selects first visible cell in a current row. 
    /// If current row is null, nothing is done. 
    /// If any cells are selected, they are unselected before selecting first cell. 
    /// </summary> 
    public void SelectFirstCellInCurrentRow() 
    { 
     if (CurrentRow == null) return; 

     ClearSelection(); 
     foreach (DataGridViewCell cell in CurrentRow.Cells) 
     { 
      if (cell.Visible) 
      { 
       cell.Selected = true; 
       return; 
      } 
     } 
    } 

而且我要這樣使用它,例如:

 private void btnAdd_Click(object sender, EventArgs e) 
     { 
      bindingSource.Add(new Customer()); 
      bindingSource.MoveLast(); 
      grid.SelectFirstCellInCurrentRow(); 
      grid.BeginEdit(false); 
     }

我的任務是向網格添加新行並開始編輯其第一個單元格。
此代碼工作正常,如果grid.MultiSelect = false,但如果grid.MultiSelect = true,那麼它不會按預期工作:取消所有單元格,選擇最後一行的第一個單元格,但!在上一次選擇的列最後一行中的單元格被編輯,而不是第一個單元格!

這是它的外觀:
1)我選擇一些細胞:
_http://img13.imageshack.us/img13/2528/beforeadd.gif

2)我按添加按鈕後:
_http://img211.imageshack.us/img211/847/afteradd.gif

在此先感謝您。

PS。爲什麼我不能添加圖像?取而代之的

cell.Selected = true; 

回答

3

嘗試

CurrentCell = cell; 
相關問題