从一个Datagridview添加新行到另一个datagirdview [英] add new row from one Datagridview to another 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屋!