2012-05-18 3 views
0

할 수 나는 여러 행으로 채워진 데이터 테이블은 각각 ​​여러 열이 있습니다 (예 : ID, 이름, 설명을 ..) 내가하려고문제 하이라이트

을 사용자가 ID 또는 이름과 같은 콤보 상자를 통해 열을 선택하고 검색 단추를 클릭 한 후 텍스트 상자에 요청 된 검색을 입력하는 검색 단추 구현 선택하고 강조 표시된 행을 갖고 싶습니다. 화면을 키로 사용하지 않고 모든 것이 테이블이 처음 채워지는 순서대로 유지하는 것입니다. 또 다른 참고 사항은 모든 항목이 여전히 표시되도록하려는 것이므로 별도의 버튼으로 이미 구현되어 있으므로 .rowfilter를 사용하지 않을 것입니다. 인덱스를 통해 행을 찾는 방법을 알아 냈고 이에 따라 코드를 업데이트했습니다. 그냥 내가 상기 행을 화면 중앙과 승을 강조 거라고 궁금/

여기

내가 지금까지 가지고 무엇 테이블의 순서를 혼합 O :

private void buttonSearch_Click(object sender, EventArgs e) 
{ 
    string query = textSearch.Text; 
    int intquery = Int32.Parse(query); 
    DataTable dt = GetAlarmTable(); 
    DataView dv = new DataView(dt); 
    DataRow[] foundRows; 
    switch (comboboxSearch.Text) 
    { 
     case "ID": 
     { 

       dv.Sort = "ID"; 
       index = dv.Find(intquery); 
       foundRows = dt.Select("ID = '" + intquery + "'"); 
       break; 
      } 
    } 
//??? ??? 

} 

공유하는 코드가있는 경우, 아이디어를 , 또는 링크 나 알려주십시오!

답변

0

다음은 내가 일반적으로 사용하는 기능입니다. DataGridViewSelectionMode 속성이 FullRowSelect으로 설정되어 있는지 확인하십시오.

public static void EnsureGridRowIsSelectedAndVisible(DataGridViewRow row) 
{ 
    if (row == null) 
     return; 

    row.Selected = true; 

    // Center the item in the display 
    row.DataGridView.FirstDisplayedScrollingRowIndex = 

     Math.Max(row.Index - Convert.ToInt32(row.DataGridView.DisplayedRowCount(false)/2), 0); 
} 
관련 문제