C#dataGridView将数据显示到另外窗体的textBox问题

2024-11-09 10:08:12
推荐回答(3个)
回答1:

这只是简单的 窗体之间的方法调用而已,

在 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 控件中的数据换成了 文本框 中的 数据, 楼主肯定可以理解。

复制代码时  注意  命名空间。我的项目名称是 “窗体之间相互调用”

命名空间弄错了就会出错的。

我专门做的一个项目,楼主分析哈......

回答2:

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()"

回答3:

《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