在 C# WinForms 中的 DataGridView 中处理组合框

本文关键字:处理 组合 DataGridView WinForms 中的 | 更新日期: 2023-09-27 18:31:35

嗨,我

有一个名为"dataGridView1"的窗口形式的数据网格,我在dataGridView1中有组合框; 我正在数据库的组合框中显示数据,并在窗口加载时在该组合框中加载所有数据。 我有函数加载模型。 有一列我想显示的模型名称,在 valuemember 中会有 MedelID, 所以我希望当用户从组合框中选择任何模型时,它会给我该模型的 ID,称为"ModelID"。

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";
}
当值更改

时,我有一个函数,我希望组合框值更改后消息框中的值

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

在 C# WinForms 中的 DataGridView 中处理组合框

使用这个

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]获得选定的单元格,并且其值(已检查)与值属性。

您还可以使用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());
       }
}

将组合框的属性设置为:

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

然后ModelComboBox.SelectedValue将是ModelID。