2013-09-16 4 views
1

Привет, у меня есть datagrid в форме окна, называемой dataGridView1, и у меня есть combobox в dataGridView1; Я показываю данные в combobox из базы данных и всех загрузок данных в этом поле со списком при загрузке окна. У меня есть функция LoadModels для этого. есть один столбец ModelName, который я хочу отобразить, и в valuemember будет MedelID, поэтому я хочу, когда пользователь выбирает любую модель из combobox, тогда он дает мне идентификатор этой модели под названием «ModelID».Обработка combobox в datagridview в C# winforms

public frmBikeOrder() 
{ 
    InitializeComponent(); 
    StartPosition = FormStartPosition.CenterScreen; 
    FormBorderStyle = FormBorderStyle.FixedSingle; 
    ControlBox = false; 
    LoadModels(); 
} 

private void LoadModels() 
{ 
    RST_DBDataContext conn = new RST_DBDataContext(); 
    List<TblBikeModel> AllModels = (from s in conn.TblBikeModels 
        select s).ToList(); 
    Column2.DataSource = AllModels; 
    Column2.DisplayMember = "ModelName"; 
    Column2.ValueMember = "ModelID"; 
} 

У меня есть функция, когда изменяется значение, я хочу значение в MessageBox после изменения значения выпадающего

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == 1) 
     { 
      ComboBox cmb = ComboBox(); 
      MessageBox.Show(cmb.SelectedValue.ToString()); 
     } 
} 

ответ

0

использование этого

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == 1) 
     { 
      bool val = (bool)dataGridView1.SelectedCells[0].Value; 
      MessageBox.Show(val.ToString()); 
     } 
} 

Вы получаете выбранную ячейку, используя dataGridView1.SelectedCells[0] и это value (проверяется) со значением Property.

вы также можете использовать DataGridViewCellEventArgs и сделать:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.ColumnIndex == 1) 
     { 
      bool val = (bool)dataGridView1[e.ColumnIndex, e.RowIndex].Value; 
      MessageBox.Show(val.ToString()); 
     } 
} 
+0

Большое спасибо мне помогли –

0

Установите свойство выпадающий список, как:

 ModelComboBox.SelectedValuePath = "ModelID"; 
     ModelComboBox.DisplayMemberPath = "ModelName"; 

Тогда ModelComboBox.SelectedValue будет ModelID.

Смежные вопросы