我知道这可能是一个重复的问题,但上一个问题并没有解决我的问题。
我有Form1
和Form2
。在Form1
中,dataGridView
有一个名为category
的字段。
在form2
我设置了combobox
。我将category
中dataGridView
的字段form1
的数据发送到combobox
中的Form2
。
我已将identifier
公开combobox
。 update 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
。
我希望cmbCategory
在field code
中显示tblCategory
的所有项目,同时选择其中一项。因此,所选项目应该是我从Form1
传递给它的项目。
我想知道怎么办?我是编码新手,如果你以简单的方式回答,我真的很感激。我使用visual c#来做这一切。
答案 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.**
}
}