【问题标题】:How to add row in datagridview from another form?如何从另一个表单在 datagridview 中添加行?
【发布时间】:2014-12-16 10:58:52
【问题描述】:

我有两种形式。 form1 包含数据网格视图。第二个(form2)表单包含文本框。当我在 form2 中单击 Ok 按钮时,这些值应该作为新行添加到 datagridview 中。这是我试图用来传递数据的代码,但它既不显示错误也不显示结果。

Form2

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

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    把这个放在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修饰符应该是公开的

    【讨论】:

      【解决方案2】:

      您需要在 form2 中的某处添加对 form1 的引用,一种简单的方法是将其添加到 form2 的顶部

      public Form1 form1 {get;set;}
      

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

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

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

      form2.form1 = this;
      

      那么就可以使用form1作为form2内部的变量来引用form1

      【讨论】:

        【解决方案3】:

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

        • 在 Form 2 上创建公共方法以将行添加到数据网格视图
        • 点击按钮创建Form 2实例并调用Form 2的方法

        表格 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);
            }
        

        表格 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();
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多