form3里选择部分行,点选择后弹出form4,并把form3里选择的项显示在form4的datagridview里
请教下该怎么弄。。
//form3里
foreach (DataGridViewRow gv in dataGridView1.Rows)
{
if (gv.Cells[0].Value != null)
{
if (bool.Parse(gv.Cells[0].Value.ToString()))
//
}
}
datatable dt;
form4 frm4 = new form4();
frm4.mdiparent = mdiparent;
frm4.show(dt);//form4里
datagridview gv = new datagridview();
gv.datasource = dt;
请教下该怎么弄。。
//form3里
foreach (DataGridViewRow gv in dataGridView1.Rows)
{
if (gv.Cells[0].Value != null)
{
if (bool.Parse(gv.Cells[0].Value.ToString()))
//
}
}
datatable dt;
form4 frm4 = new form4();
frm4.mdiparent = mdiparent;
frm4.show(dt);//form4里
datagridview gv = new datagridview();
gv.datasource = dt;
然后把form3做为参数传进去,试试。或者有dataset能吧数据传过去
//form3里
foreach (DataGridViewRow gv in dataGridView1.Rows)
{
if (gv.Cells[0].Value != null)
{
if (bool.Parse(gv.Cells[0].Value.ToString()))
// 这里把选择的行放到另一个datatable或者datagridview里
//该怎么写?
}
}
jjjjj102310253 的方法,直接传datagridview应该也可以,试试
那么:form4 fm = new form4(XX);
f.showDailg();
..关键是“XX”,它就是你要的数据,
而“XX",就是form4中构造函数的参数。
DataTable dt=new DataTable();
DataColumn col1=new DataColumn(......); dt.Columns.Add(col1);
DataColumn col2=new DataColumn(......); dt.Columns.Add(col2); //如果 DataGridView 是绑定了 DataTable 的话,则不需要代码生成 DataColumn foreach (DataGridViewRow gv in dataGridView1.Rows)
{
if (gv.Cells[0].Value != null)
{
if (bool.Parse(gv.Cells[0].Value.ToString()))
//
DataRow dr=dt.NewRow();
dr["col1"]="abc";dr["col"]=123;.....
dt.Rows.Add(dr);
}
} form4 frm4 = new form4(dt);
frm4.mdiparent = mdiparent;
frm4.show(dt); // Form4 DataTable dt; public void Form4(DataTable dtable)
{
dt=dtable;
} private void Form4_Load(....)
{
datagridView.DataSource=dt;
}
{
if (gv.Cells[0].Value != null)
{
if (bool.Parse(gv.Cells[0].Value.ToString()))
//
DataRow dr=dt.NewRow();
dr["col1"]="abc";dr["col"]=123;.....
dt.Rows.Add(dr);
}
}
----------------------
上面
DataRow dr=dt.NewRow();
dr["col1"]="abc";dr["col"]=123;.....
dt.Rows.Add(dr);这里只能这样填充DataTable吗,一个一个字段赋值?
能不能用datagridview.row 来填充?
——————————————————
另外可以直接传datagridview的吗?
{
DataGridView GVd = new DataGridView();
GVd = gv;
}看到GVd的 rowcount是有值的,但是为什么不显示数据出来呢?
{
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView2[i, dataGridView2.Rows.Count - 1].Value = dataGridView1[i, e.RowIndex].Value;
}
} get it
DataGridView.Row 恐怕不能传吧~~
如果 DataGridView 绑定了 DataTable ,则其 DataTable.Select(...) 所生成的DataRow[]数组是可以传过去绑定的,如果你没有绑定DataTable 的话~~~我觉得只能一条条的赋值.
如果你非要这么做的话,可以用GVd=gv.Clone;不过不提倡这么做。
2、用Form3中dataGridView.SelectedRows属性可以返回DataGridViewSelectedRowCollection 如下:
DataGridViewSelectedRowCollection dc = dataGridView1.SelectedRows;
3、给Form4添加一个带有 DataGridViewSelectedRowCollection 的构造函数,如下:
public class Form4:Form
{
public Form4(DataGridViewSelectedRowCollection dc)
{
InitializeComponent();
foreach (DataGridViewRow dr in dc)
{
dataGridView1.Rows.Add(dr);
}
}
4、在Form3中按“选择”时:
private void button2_Click(object sender, EventArgs e)
{
DataGridViewSelectedRowCollection dc = dataGridView1.SelectedRows;
Form4 f4 =new Form4(dc);
Form4.show();
......
}
GVd=gv.Clone ? 。有这东西吗?
DataRow dr=dtt.NewRow();
dtt.Columns.Add("col1");
dr["col1"]=GVdplan.Rows[0].Cells[2].Value;
dtt.Rows.Add(dr);
已经用传string的方法实现了,
这个方法要怎么写,是在构造函数里申明吗?