2011-12-08 3 views
1

내 코드에 문제가 있습니까?DatagridView 선택한 행 오류

this.comboBox1.SelectedIndex = _f3.dataGridView2.SelectedRows[0].Index; 

내 데이터 격자는 form3이고 내 콤보 상자는 형태 2입니다. 어떻게하면 이런 식으로 구현할 수 있습니까?

+1

에 datagridview2의 Modifiers 특성 콤보 박스의 값 및 선택한 색인을 설정하십시오 – V4Vendetta

+1

수신 오류는 무엇입니까? – Waqas

+0

감사합니다,하지만 datagridview2에 액세스 할 수 없으며 액세스하는 방법을 모릅니다. DataGrid의 액세스 한정자를 계속 변경했지만 오류는 사라지지 않습니다. 보호 수준 때문에 datagridview2에 액세스 할 수 없다고 말합니다. –

답변

1

대신에 하나의 공용 정수를 form2에 선언하면 DataGridview의 선택된 행 색인을 가져 오려면 CurrentRowIndex property을 사용하여 선택한 3 행에서 datagridview와 같은 선택된 행의 색인을 가져올 수 있습니다. 선택한 색인 전체를 볼 수 있습니다. Form2를에서와 것은 CurrentRowIndex을 할당하거나 적 형식 2에서

을 필요할 때 당신이

같은 방법을 쓰기 form3에서

private int selectedindex {get; set;} 
    selectedindex = _f3.GetSelectedIndex(); 
    this.comboBox1.SelectedIndex = selectedindex; 

같은 것을 쓰기 선택한 행의 인덱스를 반환해야 공용 메서드를 선언

public int GetSelectedIndex() 
    { 
     int selectedIndex = 0; 
     try 
     { 
      if(dataGridView2.SelectedRows.Count > 0) 
      { 
       selectedIndex = dataGridView2.CurrentRow.Index; 
      } 
     } 
     catch 
     { 
      return 0; 
     } 
     return selectedIndex; 
    } 

편집 :

당신은 DataGridView에의 인 selectionchanged 이벤트에서 form3에서 대신

dataGridview2.CurrentRow.Index 

를 사용 할 수 있습니다

private void dataGridView2_SelectionChanged(object sender, EventArgs e) 
    { 
     selectedindex = dataGridView2.CurrentRow.Index; 
    } 

도는 정수로 selectedIndex의 선언 다음과 같은 일을 할 같은 공용 변수로

및 Form2를 10 직접 이제까지 필요한 경우

this.comboBox1.SelectedIndex = _f3.selectedindex; 

는 selectedIndex의를 얻을 아래와 같이 글로벌 변수를 사용하여 selectedIndex의를 얻을.

+0

여전히 데이터 그리드보기 2에 액세스 할 수 없습니다 .. 파트 dataGridView2에서 오류가 발생합니다. ... 위에서 언급 한 것과 같은 오류입니다. T_T –

+0

나는 2 개의 오류가 있습니다. sai. 첫째는 경고입니다. 클래스 이름 '?' 이 언어에 대한 유효한 식별자가 아닙니다. \t 둘째는 'System.Windows.Forms.DataGridView'에 'CurrentRowIndex'에 대한 정의가없고 확장 메서드가 없습니다 .. –

+0

@rjtubera, 지금 바로 편집하십시오. –

0

변경 당신이 찾을 dataGridView2.SelectedRows [0] .FormattedValue` 이상 사용 'CurrentRow`, 포스트`처럼, 셀에 포함 된 값을 검사해야한다고 생각 Public

+0

나는 이미 그것을 바 꾸었습니다. 나는 심지어 모든 수정자를 사용했다. 그러나 여전히 오류는 사라지지 않을 것입니다. –