从一个Datagridview添加新行到另一个datagirdview [英] add new row from one Datagridview to another datagirdview

查看:108
本文介绍了从一个Datagridview添加新行到另一个datagirdview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将数据从一个gridview(Form1)加载到另一个gridview(Form2)而不刷新form2。



这里我的代码是:





  for  int  i =  0 ; i <  dgvList.SelectedRows.Count; i ++) 
{
dt1.Rows.Add(dgvList.Rows [i] .Cells [ 0 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 1 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 2 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 3 ]。 .ToString(),
1 0 0);
}
p.Show();
.Close();



编辑:

< pre lang =c#> p = new Purchase();
尝试
{
for int i = 0 ; i < dgvList.SelectedRows.Count; i ++)
{
dt1.Rows.Add(dgvList.Rows [i] .Cells [ 0 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 1 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 2 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 3 ] .Value.ToString(),
1 0 0\" );

p.dt3.ImportRow(dt1.Rows [i]);
}

p.Show();
// p.dgvDetails.DataSource = dt1;
int ij = p.dt3.Rows.Count;
this .Close();
p.loadGridData( this );
}
catch
{

}



但此代码刷新表单并退出数据将丢失。我希望保留以前的数据,并在刷新数据时将新数据添加到datagridview中。

解决方案

代码不刷新表单,你是每次创建一个 new 表单

 p = new Purchase(); 

在此代码之外定义p(例如,define它在公共部分类Form1:Form 级别)并在您想要添加行时重复使用该实例。



换句话说......

  public   partial   class  Form1:Form 
Purchase p = new Purchase();
...
// 这是您上面编辑的代码
// p = new Purchase();不要在此处创建新实例
尝试
{
for int i = 0 ; i < ; dgvList.SelectedRows.Count; i ++)
{
dt1.Rows.Add(dgvList.Rows [i] .Cells [ 0 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 1 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 2 ]。Value.ToString(),
dgvList.Rows [i] .Cells [ 3 ]。Value.ToString(),
1 0 0);

p.dt3.ImportRow(dt1.Rows [i]);
}

p.Show();
...等


how to load data from one gridview(Form1) to another gridview(Form2) without refreshing form2.

here my code is:


for (int i = 0; i < dgvList.SelectedRows.Count; i++)
               {
                   dt1.Rows.Add(dgvList.Rows[i].Cells[0].Value.ToString(),
                   dgvList.Rows[i].Cells[1].Value.ToString(),
                   dgvList.Rows[i].Cells[2].Value.ToString(),
                   dgvList.Rows[i].Cells[3].Value.ToString(), 
                   "1", "0", "0");
               }
               p.Show();      
               this.Close();


Edit:

p = new Purchase(); 
try 
{ 
    for (int i = 0; i < dgvList.SelectedRows.Count; i++) 
    { 
    dt1.Rows.Add(dgvList.Rows[i].Cells[0].Value.ToString(),
    dgvList.Rows[i].Cells[1].Value.ToString(), 
    dgvList.Rows[i].Cells[2].Value.ToString(), 
    dgvList.Rows[i].Cells[3].Value.ToString(), 
    "1", "0", "0");

    p.dt3.ImportRow(dt1.Rows[i]); 
    }

    p.Show(); 
    // p.dgvDetails.DataSource = dt1; 
    int ij = p.dt3.Rows.Count; 
    this.Close();
    p.loadGridData(this); 
    } 
catch 
    { 

    } 


but this code refresh the form and exiting data will get lost. i want to keep previous data as it is and add new data into datagridview whithout refreshing it.

解决方案

The code isn''t refreshing the form, you''re creating a new form every time

p = new Purchase();

Define p outside of this code (e.g. define it at the public partial class Form1 : Form level) and re-use that instance when you want to add a row.

In other words ...

public partial class Form1 : Form
Purchase p = new Purchase();
...
// This is your code from the edit above
// p = new Purchase(); Do not create a new instance here
try 
{ 
    for (int i = 0; i < dgvList.SelectedRows.Count; i++) 
    { 
    dt1.Rows.Add(dgvList.Rows[i].Cells[0].Value.ToString(),
    dgvList.Rows[i].Cells[1].Value.ToString(), 
    dgvList.Rows[i].Cells[2].Value.ToString(), 
    dgvList.Rows[i].Cells[3].Value.ToString(), 
    "1", "0", "0");
 
    p.dt3.ImportRow(dt1.Rows[i]); 
    }
 
    p.Show(); 
... etc


这篇关于从一个Datagridview添加新行到另一个datagirdview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆