2012-09-07 2 views
-2

WindowsGridView를 사용하고 있는데,이 표에서 여러 행을 선택할 수있었습니다.DataGridView에서 선택 시작 행

내가 dataGridView1.SelectedRows[0].Index을 검사 할 때 마지막으로 선택한 행 인덱스가 나타납니다. 그냥 내가 선택 행 (시작 행) 시작했다.

답변

1

당신이 코드를 시도 할 수 있습니다

Int32 selectedRowCount = 
     dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected); 
dataGridView1.SelectedRows[selectedRowCount - 1 ].Index.ToString(); 
+0

항상 작동하지 않습니다 ......... 일부 조건에서는 올바른 색인을 제공합니다. – andy

+0

격자 행 선택 (Avoided Cell Selection)에서 변경된 내용과 위 코드를 사용하여 작업 .......... 감사합니다. Candie – andy

0

당신은

dataGridView1.SelectedRows[dataGridView1.SelectedRows.Count - 1].Index 

그러나 내 관점에서

같은 뭔가를 시도 할 수는 SelectedRows의 선택 순서는 의존해야 일이 아니다 어쨌든. 내가 아는 한, the documentation은 특정 주문을 지정하지 않습니다 ... 귀하의 신청서가 중요 할 경우 귀하가 직접 조치해야합니다.

1

foreach 루프를 사용하여 가장 낮은 인덱스 행을 확인할 수 있습니다. 행을 선택하면 행의 SelectedRows 컬렉션이 순서대로 추가되기 때문입니다.

여기

 int i=int.MaxValue; 
     foreach (DataGridViewRow rw in dataGridView1.SelectedRows) 
     { 
      if (rw.Index < i) 
      { 
       i = rw.Index; 
      } 
     } 

     DataGridViewRow r = dataGridView1.Rows[i]; 

은 당신이 가장 낮은 선택된 행 색인을 반환합니다 .. 전체 foreach 루프입니다.

관련 문제