-1

我有一个名为的表单SelectCatagoryId,其中包含一个DataGridView. 我想cellvalue 将从此处选择的内容传递给另一个名为Add_product.

这是按钮事件中的代码SelectcatagoryId

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
    String dgv;
    dgv = dataGridView1.CurrentCell.Value.ToString();
    Add_product ap = new Add_product(dgv);
    this.Close();
}

这是Add_product表格内的代码

namespace Supermarket
{
    public partial class Add_product : Form
    {

        public Add_product()
        {
            InitializeComponent();
        }

        SqlConnection con;
        string file;

        public Add_product(String datagridvalue)
        {
            // MessageBox.Show(datagridvalue);
            textBox10.Text = Convert.ToString(datagridvalue);
        }

MessageBox工作正常,表单中 dgv 的值selectCatagoryId正确传递给表单Add_product,但我无法将变量的值分配datagridvaluetextBox10.Text.

4

2 回答 2

1

即使您正在创建一个overload of constructor,您也需要InitializeComponent()创建控件的所有实例。

public Add_product(String datagridvalue)
{
    InitializeComponent();
    // MessageBox.Show(datagridvalue);
    textBox10.Text = Convert.ToString(datagridvalue);

}

默认情况下,所有这些UI Component都是在表单的构造函数中启动的。并Visual Studio生成方法中的所有Initialization InitializeComponent()

于 2013-02-26T10:07:41.737 回答
1

在将文本分配给 textBox 之前,您需要显示表单 Add_product。

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
    String dgv;
    dgv = dataGridView1.CurrentCell.Value.ToString();
    Add_product ap = new Add_product();
    ap.Show();
    ap.SetProduct(dgv);
    this.Close();
}

...

也将此方法添加到 Add_product 类

    public SetProduct(String datagridvalue)
    {
        // MessageBox.Show(datagridvalue);
        textBox10.Text = datagridvalue;
    }
于 2013-02-26T10:17:40.163 回答