이 하나를 시도해보십시오.
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
}
}
}
테스트 할 메시지 상자를 삽입 할 때 문자 그대로 복사하여 붙여 넣었습니다. –
기본적으로 하나의 항목을 comboboxcell에서 선택하면 한 dataGridView에서 다른 dataGridView로 행을 이동하려고합니다. 글쎄요, 4 개의 콤보 박스 컬럼이 있습니다 만, 먼저 단 하나의 컬럼에 대한 로직을 다운시켜야한다고 생각합니다. –
나는 코드가 당신을 위해 아무 것도하지 않았지만,'Cell'이 더럽다면 코드가 트리거 될 것입니다. 존재한다면 당신의 이름을 확인하기 위해'Cell'을 남길 필요가 있다는 것을 의미합니다 :) – spajce