我有 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。
答案 0 :(得分:1)
如果要向ComboBox
显示双击的单元格内容,可以使用DataGridView.CurrentCell.Value
和ComboBox.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列,即ID
,Name
和City
。我们还要说明您的ComboBox
填充了Name
个值。双击DataGridView
行(特定行中的任何单元格)时,您希望在ComboBox
与Name
匹配的Name
值中显示 -clicked row' s ComboBox
。
例如; DGV看起来像这样:
ID |名称|城市
1 |简|纽约
2 |汤姆|墨尔本
3 |切尔西|伦敦
您的Jane
的值为Tom
,Chelsea
和London
。双击一行(任何单元格)时,您希望显示该行的名称。例如,您双击单元格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>