这只是简单的 窗体之间的方法调用而已,
在 form1 的全局中 声明:
//将 form1 的对象 作为 form2 一个变量。
然后,将 fm1 指向 打开的 form1 窗体。
再用 fm1 调用 form1 的显示的方法。
下面有一个源代码,楼主分析一哈——肯定有用——呵呵...加分吧....
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace 窗体之间相互调用
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_Open_Form2_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2();
fm2.fm1 = this; //将 窗体自身 作为参数 传递给 Form2
fm2.Show(); //打开窗体。
}
public string get_data = ""; //将被 fm1 调用,于是必须 是 public
//这个方法将被 fm1 调用,于是必须 是 public
public void Show_data()
{
txt_Get_Data.Text = get_data;
}
}
}
////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace 窗体之间相互调用
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Form1 fm1 = null;
private void btn_out_Data_Click(object sender, EventArgs e)
{
fm1.get_data = txt_out_Data.Text; //将文本框的字符串 付给 Form1 的 get_data
fm1.Show_data(); //调用显示 Form1 的 Show_data() 方法。
}
}
}
有 Form1 Form2 都是 一个文本框,一个按钮
Form1 按钮:打开Form2
Form2 按钮:传递数据
点击 Form1 的 按钮 ,Form2 会打开,
在 Form2 中的文本框输入 数据,然后点击 按钮,
你会发现, Form1 中的 文本框出现相同的字符串。
我只不过将 DGV 控件中的数据换成了 文本框 中的 数据, 楼主肯定可以理解。
复制代码时 注意 命名空间。我的项目名称是 “窗体之间相互调用”
命名空间弄错了就会出错的。
我专门做的一个项目,楼主分析哈......
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
String id = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
Form2 frm = new Form2();
if(id!="")
{
sql//查询出id列的行
sqlcommand cmd=new sqlcommand(sql,conn);
sqlDataReader dr=cmd.sqlDataReader();
if (dr.read())
{frm.textBox1.Text =dr[ "字段"].tostring();
frm.textBox2.Text =dr[ "字段"].tostring();
}
}
frm.Show();
}
问题2:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
for (int i = 0; i < dataGridView1.Columns.Count; i++)
{
dataGridView2[i, dataGridView2.Rows.Count - 1].Value = dataGridView1[i, e.RowIndex].Value;
}
}
//button事件和上面的一样,获取id后,存入数据库,只是if (dr.read())里面内容改变:sql="insert into()values()"
《1》 DataGridView的DoubleClick事件
ColumnIndex=DataGridView1.CurrentCell.ColumnIndex; // 取当前列索引
string[] a=new string[ColumnIndex];//如将a定义成static就可以在form2中直接用
for (int i=0;i
a[i] = this.DataGridView1.Rows[DataGridView.CurrentCell.RowIndex].Cells[i].Value.ToString()
}
《2》在button的click事件中,同上将取得的值给dataGridView2