视觉foxpro网格问题

时间:2011-04-22 20:08:51

标签: grid visual-foxpro getselection

如何从网格中获取所选项目的值并将其放入文本框? 谢谢!

4 个答案:

答案 0 :(得分:1)

您可以使用AfterRowColChange()事件来保留绑定到网格的最新“ControlSource”。然后,无论您想要获取值并放在其他任何地方,都要执行该源的EVALUATE()。为了看到这个样本,我创建了一个带有网格和标签的简单表单。网格列计数设置为-1,默认情况下会为用于显示的表/游标中的所有列自动构建列。

当我在行和列之间向上/向下,向左/向右滚动时,我只是获取了我所在列的控制源,然后将标签的标题设置为此类源的评估。 “TRANSFORM()”强制将值转换为兼容的字符串,这样您就不会在逻辑,日期,日期/时间,整数,数字等方面崩溃......但是,“常规”类型字段可能存在问题。

LPARAMETERS nColIndex

lcSrc = This.Columns[nColIndex].ControlSource
Thisform.label1.Caption = TRANSFORM( EVALUATE( lcSrc ))

再次,为了保存,您可能希望将网格的“COMMENT”属性存储为“最后一列有焦点”...(就像我从上面做过lcSrc),然后根据需要分配给我对标签的转让。通过这种方式,您知道哪个是DID有焦点的最新列...

This.Comment = This.Columns [nColIndex] .ControlSource

答案 1 :(得分:0)

如果数据源是表格或光标,则从内存中我认为网格会更改表格中的当前行。所以只需访问该表。

但我正在度假并在我的iPhone上,所以我要靠记忆。

答案 2 :(得分:0)

在网格中,移动到一行会将记录指针移动到基础表的相应行。所以你只需要引用表中的相应项。

ThisForm.Text1.Value = TheRelevantTable.TheRelevantField

答案 3 :(得分:0)

以此为例,看看它是否有效:

THISFORM.TEXT1.VALUE = THISFORM.GRID1.COLUMN1.TEXT1.VALUE