C# 入门菜鸟
刚接触C#,现在需要做一个新窗体要求如下:1.在原有的窗体上添加一个button控件,点击按钮后会自动跳转到新窗体
2.原有窗体中有一个dataviewer1控件显示数据库的查询结果,现在需要在点击控件后将原有窗体的dataviewer1控件的数据源复制到新窗体的dataviewercopy中
现在我在程序中新建了新窗体,在原有窗体中写了新窗体的跳转代码,但是运行时点击按钮没反应
另关于数据源的复制数据源的问题该怎么处理(需要复制的只是鼠标选中的哪一行的数据)
望各位大大帮帮忙,最好是有具体的代码(给分会高点)
我的窗体跳转代码如下:
private void toolStripButton6_Click(object sender, EventArgs e)
{
if (dataGridView1.Rows.Count == 0)
{
MessageBox.Show("請查詢后再複製!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
this.Cursor = Cursors.WaitCursor;
DataTable dt = (DataTable)dataGridView1.DataSource;
Dpartcost dpt = new Dpartcost();
partcostcopyfrm pcp = new partcostcopyfrm();
pcp.Show();
if (dt != null) dt.Dispose();
pcp.Dispose();
this.Cursor = Cursors.Default;
}
------解决方案--------------------
C# code
DataTable dt1 = new DataTable();
dt1.Columns.Add("first");//这里添加你要的列,看你需求要多少列就加多少列
dt1.Columns.Add("second");
if (dataGridView1.SelectedRows.Count > 0)//这里判断是否有选中
{
DataRow drRow = dt1.NewRow();
drRow["first"] = dataGridView1.SelectedRows[0].Cells["first"].Value.ToString();//这里给列赋值
drRow["second"] = dataGridView1.SelectedRows[0].Cells["second"].Value.ToString();
dt1.Rows.Add(drRow);//把行添加到DataTable里
}
frmAnother another = new frmAnother(dt1);//把dt1当作一个参数传递到新窗体
another.Show();
if (dt1 != null)
{
dt1.Dispose();
}
//another.Show();//这里就不要写了,要不然没法显示新窗体
------解决方案--------------------
点击按钮的时候把选中行的数据存下来放到一个公共类里面去,新窗体去公共类里面读。或者直接新窗体写一个能够接受一行数据的构造函数,new的时候传过去就好了