如何将值从Datagridview传递到c#中的组合框?

时间:2017-09-15 18:52:34

标签: c# datagridview combobox

我有 Datagridview 组合框我需要将数据从Datagridview发送到组合框(我需要更新数据并将其返回到Datagridview)。

我在Datagridview的 DoubleClick 事件中使用此代码从datagridview获取数据到另一个文本框和DateTimepicker:

private void mgrid_searchClient_Contrat_DoubleClick(object sender, EventArgs e)
{
    mcb_NomClient.Text= this.mgrid_searchClient_Contrat.CurrentRow.Cells[0].Value.ToString();
    mtb_NomContrat.Text = this.mgrid_searchClient_Contrat.CurrentRow.Cells[1].Value.ToString();
    mdtp_DATEECHIANCE.Text = this.mgrid_searchClient_Contrat.CurrentRow.Cells[2].Value.ToString();    
}

mcb_NomClient是一个ComboBox,mtb_NomContrat是一个TextBox,mdtp_DATEECHIANCE是DateTimePicker。

1 个答案:

答案 0 :(得分:1)

如果要向ComboBox显示双击的单元格内容,可以使用DataGridView.CurrentCell.ValueComboBox.Items.Add(),如下所示。

private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
    var val = dataGridView1.CurrentCell.Value;
    comboBox1.Items.Add(val);
}

这样做只会添加'一个项目,但要在ComboBox中显示项目,您还需要设置SelectedIndex

显示最近添加的项目:

private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
    var val = dataGridView1.CurrentCell.Value;
    comboBox1.Items.Add(val);
    comboBox1.SelectedIndex = comboBox1.Items.Count - 1;
}

显示第一项:

private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
    var val = dataGridView1.CurrentCell.Value;
    comboBox1.Items.Add(val);
    comboBox1.SelectedIndex = 0;
}

编辑(由于OP的更新要求):

我们假设您的DataGridView有3列,即IDNameCity。我们还要说明您的ComboBox填充了Name个值。双击DataGridView行(特定行中的任何单元格)时,您希望在ComboBoxName匹配的Name值中显示 -clicked row' s ComboBox

例如; DGV看起来像这样:

  

ID |名称|城市

           

1 |简|纽约

     

2 |汤姆|墨尔本

     

3 |切尔西|伦敦

您的Jane的值为TomChelseaLondon。双击一行(任何单元格)时,您希望显示该行的名称。例如,您双击单元格ComboBox,并希望Chelsea显示Name

在这种情况下,您需要获取当前行(单击的行),然后获取该行中的ComboBox列值,并在private void dataGridView1_DoubleClick(object sender, EventArgs e) { var currentRow = dataGridView1.CurrentRow; var selectedName = currentRow.Cells[1].Value; var index = comboBox1.Items.IndexOf(selectedName.ToString()); comboBox1.SelectedIndex = index; } 值中查找。

<my-color-palette-component color="primary"></my-color-palette-component>