日期:2014-05-17  浏览次数:20916 次

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的时候传过去就好了