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

时间:2015-07-09 03:45:25

标签: c# datagridview combobox parameter-passing

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

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

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

我已将identifier公开comboboxupdate button中有一个Form1

我希望当我选择一行并点击update button时,Form2会打开,其中的combobox会显示category的字段dataGridView的值} Form1.

这是代码:

Form2 fr2 = new Form2();  

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

fr2.Show();

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

我希望cmbCategoryfield code中显示tblCategory的所有项目,同时选择其中一项。因此,所选项目应该是我从Form1传递给它的项目。

我想知道怎么办?我是编码新手,如果你以简单的方式回答,我真的很感激。我使用visual c#来做这一切。

1 个答案:

答案 0 :(得分:1)

你可以这样做

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