-1

SelectCatagoryIdを含むというフォームがありますDataGridViewcellvalue ここから選択したものを別のフォームに渡したい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内のすべての初期化を生成します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 に答える