首页 文章

如何从另一个表单中添加datagridview中的行?

提问于
浏览
2

我有2个表格 . form1包含datagridview . 第二个(form2)表单包含文本框 . 当我在form2中单击“确定”按钮时,值应该作为新行添加到datagridview中 . 这是我试图用来传递数据的代码,但它既没有显示错误也没有结果 .

窗体2

private void btnOk_Click(object sender, EventArgs e)
{ 
  form1.datagridview.Rows.Add("firstname", "lastname", "Success", "Userid", DateTime.Now.ToString());
}

3 回答

  • 0

    把它放在 Form1

    private void button1_Click(object sender, EventArgs e) {
            Form2 f2 = new Form2(this);
            f2.Show();
      }
    

    把它放在 Form2

    private Form1 form1;
    
        public Form2(Form1 form1) {
            InitializeComponent();  
            this.form1 = form1;
        }
    
        private void button1_Click(object sender, EventArgs e) {
            form1.dataGridView1.Columns.Add("FirstName", "First Name");
            form1.dataGridView1.Columns.Add("LastName", "Last Name");
            form1.dataGridView1.Columns.Add("UserId", "Userid");
            form1.dataGridView1.Columns.Add("Success", "Success");
    
            object[] row = new object[] {"1","Product 1","1000",DateTime.Now.ToString()};
    
            form1.dataGridView1.Rows.Add(row);
        }
    

    应该这样做

    和datagridview修饰符应该是公共的

  • 0

    你需要在form2的某个地方添加对form1的引用,这样做的一个简单的方法是将它添加到form2的顶部

    public Form1 form1 {get;set;}
    

    然后当你创建你的form2时,我想从form1这样的东西

    Form2 form2 = new Form2();
    form2.ShowDialog();
    

    您可以在ShowDialog()之后或之前添加此项

    form2.form1 = this;
    

    然后,您可以使用form1作为form2内部的变量来引用form1

  • 3

    这是我建议你最简单的方法:

    • 在表单2上创建公共方法,以将行添加到数据网格视图

    • 在按钮单击时创建表单2的实例并调用表单2的方法

    Form 1

    public Form1()
        {
            InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            var firstName = txtFirstName.Text;
            var lastName = txtLastName.Text;
            var success = txtSuccess.Text;
            var userId = txtUserId.Text;
    
            var frm2 = new Form2();
            frm2.AddGridViewRows(firstName, lastName, success, userId);
        }
    

    Form 2

    public Form2()
        {
            InitializeComponent();
        }
    
        public void AddGridViewRows(string firstName, string lastName, string success, string userId)
        {
            // Add rows to grid view.
            dataGridView1.Rows.Add(firstName, lastName, success, userId);
    
            // Refresh the grid
            dataGridView1.Update();
        }
    

相关问题