/ / Datagridview ComboBoxCell ustawić domyślną wartość? - c #, .net, datagridview, combobox

Datagridview ComboBoxCell ustawić domyślną wartość? - c #, .net, datagridview, combobox

Mam datagridview z dużą ilością danych i kiedyDodaję nową linię, ostatni wiersz ostatniej kolumny tworzy nowy ComboBoxCell, który zawiera cztery elementy, ale nie mogę ustawić wartości domyślnej ("DropDown") dla combobox. Za każdym razem muszę ręcznie wybrać "DropDown". Jakie jest rozwiązanie?

 DataGridViewComboBoxCell dgvCell = new DataGridViewComboBoxCell();
dgv[1, dgv.Rows.Count - 1] = dgvCell;

string[] controltype = {"DropDown", "CheckBoxList", "ListControl", "Tree" };
dgvCell.DataSource = controltype;

Odpowiedzi:

0 dla odpowiedzi № 1
private void dataGridView_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells[4].Value = "DropDown";
}

0 dla odpowiedzi nr 2

to proste, jeśli masz kolumnę ComboBox w swojejDataGrid View i chcesz wiedzieć, jaki jest wybrany indeks pola kombi, musisz to zrobić: 1. Obsługa zdarzenia EditingControlShowing w widoku DataGrid. W tej procedurze obsługi zdarzeń sprawdź, czy aktualna kolumna jest dla nas interesująca. Następnie tworzymy tymczasowy obiekt ComboBox i otrzymujemy wybrany indeks:

Kod

private void dataGridView1_EditingControlShowing(object sender,
DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 0)
{
// Check box column
ComboBox comboBox = e.Control as ComboBox;
comboBox.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
}
}

void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = ((ComboBox)sender).SelectedIndex;
MessageBox.Show("Selected Index = " + selectedIndex);
}

-1 dla odpowiedzi nr 3

próbować :

if(!isPostBack)
{
dgvCell.SelectedItem=controltype[0].toString();
}