1

嗨,我有一个名为“dataGridView1”的窗口形式的数据网格,并且我在 dataGridView1 中有组合框;我在组合框中显示来自数据库的数据,并在加载窗口时在该组合框中加载所有数据。我有功能 LoadModels 。我想显示一列ModelName,在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());
       }
}
4

2 回答 2

0

用这个

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

您使用 value 属性获取选定的单元格dataGridView1.SelectedCells[0],它的值(已选中)。

你也可以使用DataGridViewCellEventArgsand 做:

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());
       }
}
于 2013-09-16T06:35:01.197 回答
0

将组合框的属性设置为:

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

然后 ModelComboBox.SelectedValue 将是 ModelID。

于 2013-09-16T06:58:23.813 回答