delphi 如何实现grid组件在鼠标双击某一行后获得这一行的数据并将数据写到相应的edit中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 如何实现grid组件在鼠标双击某一行后获得这一行的数据并将数据写到相应的edit中?相关的知识,希望对你有一定的参考价值。

我需要一个方法,可以在鼠标双击某一条数据后,将这一条数据中的每一个字段内容显示在界面中指定的edit中,谁能提供一下这样的方法。。。。
grid控件可以通过field属性访问控件中的每一个字段,序号从0开始定义类型是:
field[index:integer]
实现方法是在DblClick(双击)事件中添加代码
name.Text:=cpxx.Fields[0].Value;
cptype.Text:=cpxx.Fields[1].Value;
size.Text:=cpxx.Fields[2].Value;
money.Text:=cpxx.Fields[3].Value;
from.Text:=cpxx.Fields[5].Value;
intime.Date:=cpxx.Fields[4].Value;
直接这样赋值就可以了

参考技术A Edit1.Text:=Grid.datasource.dataset.FieldByName('字段名').asstring
写入 Grid 的 OnDBClick 事件中本回答被提问者采纳
参考技术B 使用grid事件的ondblclick事件

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
self.Edit1.Text:=ADOQuery1['姓名'];
end;
首先ADOQuery1得是grid是查询出的数据就行了。追问

晕,我说怎么代码就这么点。。。
大哥~我说的是某一条记录,是横向的,字段我知道查的

参考技术C
grid2.colcount:=grid1.rowcount;
grid2.rowcount:=grid1.colcount;
for irow:=0 to grid1.Rowcount-1 do
for icol:=0 to grid1.colcount-1 do
grid2.cells[irow,icol]:=grid1.cells[icol,irow];

大概是这样子的追问

你这个代码好象是用于两个grid控件中的数据传递吧。。。?
我是要在一个grid组件中双击鼠标以后这一行数据的每一个传递到相应的edit组件的text里面去
主要不知道的是不知道用什么方法来实现传递每一个字段中的数据

参考技术D 你可以进行delphi的帮助学习

关于WinForm下DataGridView控件行的选择的问题

我在DataGridView1控件中显示考题的信息,双击某一行考题后可以将这行考题添加到DataGridView2,考题有分类QuestionsType字段,我想在选择了QuestionsType的值是A的考题后,设置QuestionsType的值为B的考题都为不可选考题,有什么办法可以实现这个操作吗?我的意思是在DataGridView1中我显示了所有可选考题的信息,双击某一行后,可以把这一行的考题信息添加到DataGridView2中,那么这个时候,我就要判断一下我先择考题的QuestionsType值,如果是A的话,那么我就要让DataGridView1中所有QuestionsType值为B的考题是不可选的。请各位大侠指点一下,谢谢了。

在1里面绑定一个id列,隐藏,然后你通过datagridview的行选择事件,取得选中行的id,再通过id去数据库查QuestionsType,然后根据条件查出数据给2绑定数据,同时设置行的datagridview[列,行].readonly=true; 参考技术A 你最好截个图,尤其是数据库,没有明白你的意思。尤其是那个字段要干嘛。

以上是关于delphi 如何实现grid组件在鼠标双击某一行后获得这一行的数据并将数据写到相应的edit中?的主要内容,如果未能解决你的问题,请参考以下文章

delphi7的dbgrid选中一行双击后,弹出新窗口,并将dbgrid选中行的值传给新窗口?

delphi 如何实现三击鼠标事件

Delphi StringGrid控件如何单击选一行,双击编辑单元格,完后继续单击选择一行??

Delphi在提取数据填充到Grid上面总是一行行的闪烁加载、如何解决?

DelPhi怎样模拟鼠标单击?

WPF中如何实现在listview中直接实现编辑功能?