在C#中以另一种形式向datagridview添加数据?

时间:2012-07-04 07:09:19

标签: c# winforms visual-c#-express-2010

好的,我有2个表格。 form8包含datagrid视图。第二个(form10)表单包含一个文本框和一个图片框。这是我试图用来传递数据的代码,但它不起作用。

    Form8 frm8;
    public Form10(Form8 frm8): this()
    {
        this.frm8 = frm8;
    }

    private void buttonX1_Click(object sender, EventArgs e)
    {
        try
        {
            int n = frm8.dataGridView1.Rows.Add();
            frm8.dataGridView1.Rows[n].Cells[0].Value = textBox1.Text;
            frm8.dataGridView1.Rows[n].Cells[1].Value = comboBox1.Text + "|" + textBox3.Text;
            frm8.dataGridView1.Rows[n].Cells[2].Value = pictureBox1.Image;
            this.Close();
        }
        catch { }
    }

2 个答案:

答案 0 :(得分:1)

请尝试刷新表单以获得结果。

frm8.dataGridView1.Invalidate();

或尝试使用Application.DoEvents()来刷新UI线程。

答案 1 :(得分:0)

最好是从Form10创建一个事件,然后在form8中注册该事件,这样当你点击按钮时,你的数据就会传递给form8。

您还应该对异常日志执行某些操作,并坚持使用命名约定来使代码更具可读性