在c#中,当组合框绑定到表时,如何选择另一种形式的组合框中的项

本文关键字:组合 选择 另一种 绑定 何选择 | 更新日期: 2023-09-27 18:01:39

我知道这可能是一个重复的问题,但之前的问题并没有解决我的问题。

Form1Form2。在Form1中有一个dataGridView,其字段称为category

form2中我设置了combobox。我将form1dataGridViewcategory字段的数据发送到Form2中的combobox

我已经公开了这个comboboxidentifierForm1中有一个update button

我想当我选择一行并点击update button时,Form2打开并且combobox显示Form1.dataGridViewcategory字段的值

这是代码:

Form2 fr2 = new Form2();  
fr2.cmbCategory.Text = dgvProduct.SelectedRows[0].Cells[1].Value.ToString(); 
fr2.Show();

然后在Form2中,我将cmbCategoryDataSource设置为tblCategory,并将Display member设置为code字段。

我想让cmbCategorytblCategory中显示field code的所有项目,同时选中其中一个项目。所以选中的项目应该是我从Form1传递给它的项目。

我想知道怎么做?我是编码新手,如果你用简单的方式回答我,我真的很感激。

在c#中,当组合框绑定到表时,如何选择另一种形式的组合框中的项

你可以这样做

更新:使用Text代替SelectedItem

在你的Form1 cs文件:

private void UpdateButton_Click_1(object sender, EventArgs e)
{
    int category = 0;
    Int32.TryParse(dgvProduct.SelectedRows[0].Cells[1].Value.ToString(), out category);
    Form2 fr2 = new Form2(category);  // You are calling parameterized constructor for Form2
    fr2.Show();
}

现在在你的Form2 cs文件中:

public partial class Form2 : Form
{
    public int Category { get; set; }  // Property for selected category (You need this only if you need the category outside Form2 constructor)
    public Form2()  // Default constructor
    {
        InitializeComponent();
    }
    public Form2(int category) // Contructor with string parameter
    {
        Category = category;
        InitializeComponent();
        cmbCategory.Text = Category.ToString();  **// Use Text property instead of SelectedItem.**
    }
}