2014-10-08 4 views
0

내 Wondows 폼 응용 프로그램에 dataGridView1이 있습니다. dataGridView1에 문자열 목록을 채 웠습니다. 이 모든 것이 훌륭하게 작동합니다. 하지만 ...DataGridView1에서 선택한 행 얻기

나는 사용자가 선택한 행을 잡을 수 있어야하고 나는 그것을 할 수 없다. 내 코드는 아래에 쓰여진 오류를 제공합니다.

msdn 사이트에서 GridViewRow를 복사했습니다.

private void editButton_Click(object sender, EventArgs e) { 
     GridViewRow row = dataGridView1.SelectedRow; 

     //This is what I have been using before with a list box. 
     if (itemList.SelectedIndex >= 0) { 
      int newInt = itemList.SelectedIndex; 
      Form form = new NewItemW(selectedFolder, this, items[newInt], WindowEnum.ItemEdit); 
      form.Show(); 
     } 
    } 

나는 이것을 시도했지만 오류가 나타납니다. "유형 또는 네임 스페이스 'GridViewRow'를 찾을 수 없습니다."

기본 질문은 어떻게 작동합니까?

+0

나는 그 오류가 내가 누락 된 사용에 대한 것이지만 어떤 것이 있는지 모른다. – Funlamb

+3

'DataGridViewRow'. 다음과 같이 확인하는 것을 잊지 마십시오 :'(dataGridView1.SelectedRows.Count> 0) ..''GridViewRow'는'WPF'의'GridsViews'를위한 것입니다 – TaW

+0

또한 :'Winforms DataGridView'에'SelectedRow'가 없습니다. 대신에'dataGridView1.SelectedRows [0]' – TaW

답변

1

이처럼해야 당신이 Winforms DataGridView를 사용하는 가정 :

private void editButton_Click(object sender, EventArgs e) 
{ 
    if (DataGridView1.SelectedRows.Count > 0) 
    { 
     DataGridViewRow row = dataGridView1.SelectedRows[0]; 
     if (itemList.SelectedIndex >= 0) 
     { 
     int newInt = itemList.SelectedIndex; 
     Form form = new NewItemW(
         selectedFolder, this, items[newInt], WindowEnum.ItemEdit); 
     form.Show(); 
     } 
    } 
} 

을 당신이 WPF 컨트롤 및 윈폼과의 코드를 혼합 한 링크에서 복사하여. 사람들은 종종 DataGridViewGridViewRow이라는 이름을 혼합하지만, wong 속성 SelectedRow도 복사했습니다. 대신 SelectedRows 컬렉션의 첫 번째 요소를 사용하십시오. 또한 항상 확인하거나 그렇지 않으면 배열 acess 충돌이 발생합니다.

+0

도움 주셔서 감사합니다. – Funlamb

+0

한 번 더 질문드립니다. listBox에서 사용되는 itemList를 제거하려고합니다. [0]을 내가 실제로 선택한 행으로 대체하려면 어떻게해야합니까? – Funlamb

+0

글쎄,'ListBox'와'DGV'의 __relation__이 무엇인지 말해줘야 할 것입니다. 사실,'row'는 아직 사용되지 않습니다. – TaW