C#dataGridView中数据放到另一个窗体的textbox中,急急急

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#dataGridView中数据放到另一个窗体的textbox中,急急急相关的知识,希望对你有一定的参考价值。

一。2个窗体,form1中只有dataGridView1,已经绑定数据库。定义双击事件。被双击的那行数据自动添加到另外一个窗体form2的几个textbox中.
二。将dataGridView1中的数据添加到同窗体dataGridView2中并存入数据库中的button按扭。这个又该怎么做啊?
数据库是access,希望详细点,分不是问题!!真的很急
大道路和过程我差不多都知道,我想要的是代码!!!!

其实这个解决一个问题就很简单了,就是双击DataGridView时你怎么得到这一行数据的主键值,我在这里暂且定义它为ID吧,得到ID后就可以通过window.open()来打开TextBox所在页面了,我们暂且叫这个页面Info.aspx,那么打开这个页面时肯定要把ID带上,所以地址就变成了这样Info.aspx?ID=123,这样就很好根据ID取值并现在在TextBox中了吧。
好,下面就来解决双击得到ID的问题。首先我们在DataGridView的Item_bind事件中给每项绑定一个客户端的双击事件,
ondbclick
=
"getInfo(this)"
然后在页面的
然后在页面的js脚本中定义如下代码
<script
type="text/javascript">
function
getInfo(obj)

window.open("Info.aspx?id="+obj.parentElement.childNodes[0].innerText);

</script>
有什么不懂就Hi我吧
参考技术A 支持一楼的回答,就是将DATAGRIDVIEW中选定数据提取出来,然后拼接成字符串在textbox中显示。当然要加一个双击的事件,双击时候显示就好。
提取数据代码:
string
data
=
datagridview1.SelectedCells[0].Value.ToString();
//我这个是提取出来选中的单元格中的数据,若是要行的,需要去数据库中查找一条数据每个字段的值,然后拼接赋值给data
然后双击事件下的代码:
Form2
frm
=
new
Form2();
frm.textbox.Text
=
data;
frm.ShowDialog();
就是这样吧。。
参考技术B 基于Form1中的DataGridView1 中是绑定的,你可以在双击事件中获取当前所在行的RowIndex.将DataRowView 对象传给Form2。然后通过列索引取得DataRowView 对象中的值,一个个填充到TextBox中。。

第二个问题,我觉得很简单啊,不知道我的理解正确不正确, 直接把DataGridView的DataSource 赋给DataGridView2的DataSource 不就OK了。本回答被提问者采纳
参考技术C private
void
dataGridView1_CellClick(object
sender,
DataGridViewCellEventArgs
e)

Form2
frm2
=
new
Form2(dataGridView1.SelectedRows[0].Cells[0].Value.ToString());
/*所带参数是datagridview1选择行的第一列里面的值
可以根据情况自己设定
/*把字段拼在一起很简单啊Form2
frm2=new
Form2(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+...+dataGridView1.SelectedRows[0].Cell[i].Value.ToString()+...)
i
是dataGridView1的Columns数
*/
frm2.ShowDialog();

form2的构造函数
public
Form2(string
s)

InitializeComponent();
textBox1.Text
=
s;
参考技术D 基于Form1DataGridView1
绑定双击事件获取当前所行RowIndex.DataRowView
对象传给Form2通过列索引取得DataRowView
对象值填充TextBox
第二问题我觉得简单啊知道我理解正确正确
直接把DataGridViewDataSource
赋给DataGridView2DataSource
OK了

C# winform DataGridView刷新慢

写了一个程序使用开发工具winform,在使用DataGridView控件,在我的机子上面运行一点问题都没得,不管数据有多少行,都不行影响性能,在同事的机子上运行(Amd Athlon 5400+,GF9500的独显) ,如果数据的行数太多,已经到了满幕后,就会出现一个滚动条,拖动滚动条时感觉数据刷新很慢,并且数据一直在从上往下闪屏,这时候如果再来操作这些数据,基本上是机子就痴呆了,程序运行起来慢得要死,打开任务管理器,CPU使用率直接50%以上,我本人的机子比同事的机子配置要差得多,都不会出现这种情况,但是不知道为什么样会出现这样子的一种情况。
问题描述完了,请高人指点。
全都是些瓜麻批。。

你们的硬件环境不同,操作系统环境可能也有所不同。比如他在运行你的程序的同时是否有很多后台程序在运行?如果操作系统中同时运行的线程过多,就会造成类似情况。

另外,你的CPU是否是Intel的,有时候某些AMD的CPU的计算能力有点问题。

一般编写的WinForm程序与显卡关系不大,他们都是采用CPU来计算界面,所以消耗CPU比较大,如果CPU的计算能力不同,就会造成刷屏的情况。WinForm与WPF不同,WPF是借用显卡的处理器,将界面重画工作都交给了显卡,解放了CPU的处理。
参考技术A 你可以删掉DataGridView重做一次试试:
1.删除掉现有的DataGridView
2.拖一个新的DataGridView,不改变任何属性,不手动创建列.
3.直接把数据绑定到DataGridView,看速度是否还是很慢.
若这样还很慢,就是你的电脑问题

如果上面的方法还不能解决,
那你就用分页的方式来显示吧...
参考技术B 分屏撒,你整这么多干什么 参考技术C 这个,我知道你是瓷锤!

以上是关于C#dataGridView中数据放到另一个窗体的textbox中,急急急的主要内容,如果未能解决你的问题,请参考以下文章

c#winform 多线程绑定datagridview会造成假死,滚动条无法滚动,用委托怎么做

C#winform程序中,将A窗体datagridview中选中的数据传到B窗体里面的各个文本框中进行修改

如何从 c# Windows 窗体中文本框的文本内容更新 datagridview 的列

C# 语言单击DataGridView的行参数传递到另一个窗体

关闭子窗体时如何刷新datagridview?

(C#)怎样在一个窗口中调用另一个窗口中的dataGridView