2017-04-05 56 views
0

在我的數據網格中,正在根據某些值更改行選擇。選擇已更改的數據網格不會更改當前行索引

dgvGetData.Rows[rowIndex].Selected = true; 

但在DataGrid中選擇改變事件的當前行的索引不改變的rowIndex.it仍然是我設置之前相同dgvGetData.Rows[rowIndex].Selected = true;

+0

是多選,因爲如果我測試它工作正常 – EpicKip

回答

1

我找到了答案 我設置的代碼如下

rowIndex = row.Index; 
         dgvGetData.ClearSelection(); 


         dgvGetData.CurrentCell = dgvGetData.Rows[rowIndex].Cells[2]; 
         dgvGetData.CurrentRow.Selected = false; 
         dgvGetData.Rows[rowIndex].Selected = true; 

當我加入了線

gvGetData.CurrentCell = dgvGetData.Rows[rowIndex].Cells[2]; 
          dgvGetData.CurrentRow.Selected = false; 

奏效並返回選定行的索引作爲當前index ..

0

這通常工作得很好,只有我能想到的是問題有多重選擇並取回先前選定的行(即將被選中)。如果這將是問題,修復將很容易:

myDataGridView.ClearSelection(); 
myDataGridView.Rows[rowIndex].Selected = true; 
+0

multiselect屬性設置爲false,我也alresdy添加了代碼myDataGridView.ClearSelection();改變選擇 –

+0

@SruthiSuresh我在一個新的窗體上測試它,它的工作原理如此idk從這裏去 – EpicKip

0

我的源代碼。
you miss cells [ColumnIndex]。

此代碼添加。

DataGridView.Rows[ RowIndex ].Cells[ ColumnIndex ].selected = true; 
0

是您的DataGridView對象FullRowSelect的屬性SelectionMode

如果您想以編程方式設置屬性。 試試這個

dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
+0

yess我試圖通過設置dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect; –

0

通過使用下面的代碼可以找到一個值,這將是選定行:

 int rowIndexResource = -1; 
    foreach (DataGridViewRow row in this.resourceDataGridView.Rows) 
    { 
     if(row.Cells["resourceConfigId"].Value.ToString().Equals(resourceInfo.ResourceConfigId.ToString())) 
     { 
      rowIndexResource = row.Index; 
      break; 
     } 
    } 

this.resourceDataGridView.Rows[rowIndexResource].Selected = true; 
this.resourceDataGridView.FirstDisplayedScrollingRowIndex = rowIndexResource; 
this.resourceDataGridView.Focus(); 

「resourceConfigId」是列名,我在DataGridView和resourceInfo.ResourceConfigId.ToString()是你在後搜索特定的字符串值格。這不是對你的問題的直接回答,但你可以考慮這是否仍然有用。