当组合框绑定到 c# 中的 table 时如何 select 组合框中的项目以另一种形式

how to select an item in a combobox in another form when combobox is binded to a table in c#

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

我有 Form1Form2。在 Form1 中有一个 dataGridView,其中包含一个名为 category 的字段。

form2中我设置了一个combobox。我将数据从 form1dataGridView 的字段 category 发送到 Form2 中的 combobox

我做了这个comboboxidentifierpublic。 Form1中有一个update button

我想要当我 select 一行并单击 update button 时,Form2 打开并且那里的 combobox 显示字段 [=17= 的值] Form1. dataGridView

这是代码:

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 的所有项目,同时,select 编辑其中一项。因此 selected 项目应该是我从 Form1 传递给它的项目。

不知道怎么办?我是编码新手,如果您以简单的方式回答,我将不胜感激。我已经使用 visual c# 完成了所有这些工作。

你可以这样做

更新:使用文本代替 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.**
    }
}