0

나는 DataGridView을 가지고 있으며, 그 중 일부는 ComboBoxColumns입니다. 이벤트를 생성하는 방법이 있습니까? ComboBoxColumn 셀이 입력되고 항목이 선택 될 때마다 이벤트가 발생합니까? 지금까지 알아낼 수있는 모든이있다 : 아무것도하지 않는변경되는 ComboCoxColumn 셀에 대한 이벤트를 추가하는 방법

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == 0) 
    { 
     MessageBox.Show("Amanda"); 
    } 
} 

.

답변

0

이 하나를 시도해보십시오.

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 
     { 
      ComboBox nameComboBox = e.Control as ComboBox; 
      if (dataGridView1.CurrentCell.ColumnIndex == 0) 
      { 
       if (nameComboBox != null) 
       { 
        ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown; 
        ((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems; 
        ((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; 

       nameComboBox .SelectedIndexChanged -= (nameComboBox _SelectedIndexChanged); 
       nameComboBox .SelectedIndexChanged += (nameComboBox _SelectedIndexChanged); 

       } 
      } 
     } 

    private void nameComboBox_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (dataGridView1.CurrentCell.ColumnIndex == 1) 
     { 
     var rowindex = dataGridView1.CurrentCell.RowIndex; 

       if (dataGridView1[1, rowindex].EditedFormattedValue != null) 
       { 
        Consol.WriteLine(dataGridView1[1, rowindex].EditedFormattedValue.ToString()); 
       } 
       else 
       { 
       //No value in cell 
       } 
     } 
    } 
+0

테스트 할 메시지 상자를 삽입 할 때 문자 그대로 복사하여 붙여 넣었습니다. –

+0

기본적으로 하나의 항목을 comboboxcell에서 선택하면 한 dataGridView에서 다른 dataGridView로 행을 이동하려고합니다. 글쎄요, 4 개의 콤보 박스 컬럼이 있습니다 만, 먼저 단 하나의 컬럼에 대한 로직을 다운시켜야한다고 생각합니다. –

+0

나는 코드가 당신을 위해 아무 것도하지 않았지만,'Cell'이 더럽다면 코드가 트리거 될 것입니다. 존재한다면 당신의 이름을 확인하기 위해'Cell'을 남길 필요가 있다는 것을 의미합니다 :) – spajce

관련 문제