본문 바로가기

c#

c# dataGridview combobox 추가 하는 법 combobox ComboBox_SelectedIndexChanged 이벤트 추가

c# winform에서 gridview의 셀 안에 콤보박스를 넣는 예제입니다!

아래의 과목이라는 컬럼에 콤보박스를 넣어 선택 했을때 메세지 박스를 띄우는 이벤트도 추가했습니다.

디자인
콤보박스 안의 리스트를 선택시 이벤트 발생

콤보박스안의 item들을 선택할때 발생하는 이벤트핸들러를 추가하여 콤보박스 변경 이벤트가 발생했을 때의 로직도 구현 할 수 있습니다.

 

public Form1()
       {
           InitializeComponent();
           MakeComboGrid();
       }
 
 
       private void MakeComboGrid()
       {
           DataGridViewComboBoxCell cbocell = new DataGridViewComboBoxCell();
           cbocell.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
           
           int rowindex = dataGridView1.Rows.Add();
 
           cbocell.Items.Add("국어");
           cbocell.Items.Add("수학");
           cbocell.Items.Add("과학");
 
           dataGridView1.Rows[rowindex].Cells[0] = cbocell;
       }
 
       private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
       {
           System.Windows.Forms.ComboBox combo = e.Control as System.Windows.Forms.ComboBox;
 
           if (combo != null)
           {
               combo.SelectedIndexChanged -= new EventHandler(ComboBox_SelectedIndexChanged);
               combo.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
           }
       }
 
       private void ComboBox_SelectedIndexChanged(object sender , EventArgs e)
       {
           ComboBox cb =sender as ComboBox;
 
           MessageBox.Show(cb.Text);