Programing

프로그래밍 방식으로 DataGridView에서 행 선택

lottogame 2020. 9. 3. 23:35
반응형

프로그래밍 방식으로 DataGridView에서 행 선택


DataGridView런타임에 프로그래밍 방식 으로 특정 행 범위를 어떻게 선택할 수 있습니까?


테스트되지 않았지만 다음을 수행 할 수 있다고 생각합니다.

dataGrid.Rows[index].Selected = true;

또는 다음을 수행 할 수 있습니다 (다시 테스트하지 않음).

dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
    if(YOUR CONDITION)
       row.Selected = true;
}

Visual Basic에서이 작업을 수행하여 DataGridView; 선택한 행이 강조 표시된 색상으로 표시되지만 커서 위치는 변경되지 않습니다.

Grid.Rows(0).Selected = True

이렇게하면 커서 위치가 변경됩니다.

Grid.CurrentCell = Grid.Rows(0).Cells(0)

위의 행을 결합하면 커서가 배치되고 행이 선택됩니다. 다음은의 행에 초점을 맞추고 선택하는 표준 절차입니다 DataGridView.

Grid.CurrentCell = Grid.Rows(0).Cells(0)
Grid.Rows(0).Selected = True

DataGridView.Rows
    .OfType<DataGridViewRow>()
     .Where(x => (int)x.Cells["Id"].Value == pId)
     .ToArray<DataGridViewRow>()[0]
     .Selected = true;

이 시도:

datagridview.Rows[currentRow].Cells[0];

데이터 소스가있는 경우 Select 메서드를 사용할 수 있습니다. http://msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx

또는 데이터 소스에 객체가 있으면 linq를 사용하십시오.


 <GridViewName>.ClearSelection(); ----------------------------------------------------1
 foreach(var item in itemList) -------------------------------------------------------2
 {
    rowHandle =<GridViewName>.LocateByValue("UniqueProperty_Name", item.unique_id );--3
    if (rowHandle != GridControl.InvalidRowHandle)------------------------------------4
    {
        <GridViewName>.SelectRow(rowHandle);------------------------------------ -----5
    }
  }
  1. 이전 선택을 모두 지 웁니다.
  2. 그리드에서 선택해야하는 행을 반복합니다.
  3. 그리드에서 행 핸들 가져 오기 (여기서 그리드는 이미 새 행으로 업데이트 됨)
  4. 행 핸들이 유효한지 확인합니다.
  5. 유효한 행 핸들이 있으면 선택하십시오.

여기서 itemList는 격자보기에서 선택할 행 목록입니다.

참고 URL : https://stackoverflow.com/questions/6265228/selecting-a-row-in-datagridview-programmatically

반응형