回 帖 发 新 帖 刷新版面

主题:怎样让表格控件里每一列的text1的dblclick事件执行相同的代码段???

我有一个表单,其中有一表格,可以显示任何一个在该表单运行之前已经打开的数据表,现在我想在每个单元格中双击鼠标时执行同样一段代码.我又不想给每一列的TEXT1控件的dblclick事件都写上该代码,因为,此表格的列数,在显示不同的数据表时可能不同.请问有没有办法在运行时自动让每列的TEXT1的DBLCLICK事件执行同样一段代码.
这个问题有一定难度,敬请高手不吝赐教!

回复列表 (共9个回复)

沙发


设置表格的AllowCellSelection为.F.,然后直接在表格的DblClick事件中写代码

板凳

djGong2002的办法我试过了,可以,但是当:

表格的AllowCellSelection为.f.后,表格就不能编辑,也不能选择其中某个单元格的值,即便达到了目的,又有什么意义呢?

我的要求是既要能选择每个单元格,又要能单击或双击单元格时运行统一的代码段.

先谢谢 djGong
请专家们继续支持我!!

3 楼

既然grid的setall()函数可以给表格中所有的某个属性赋同样的值,难道就没有一个什么函数能让表格控件中的所有text1或header1执行某段同样的代码吗?
是我们没发现呢? 还是grid控件确实没有这样的功能呢?
希望专家们赶快想办法?

4 楼

请老金原谅,
实在是没有精力去试什么了,
不过我瞎翻了一下:

.readmethod  读取方法程序文本
.writemethod 写入方法程序文本

还有,我看到 GRID 的双击,相当于文本框的双击 -- 全选

还有,记得以前见到过有写鼠标事件的,不知道能不能从鼠标入手.

如果是我,走头无路的时候,我只能做一个隐藏的按钮,
在每一个要调用事件的地方加上去  .click
剩下的事情就在余生八十年的岁月里去寻找替代方法.

5 楼

刚又想起一个运行时的集合叫做 .Controls 
不知道能不能用得上。

6 楼

只要一行代码可以解决此问题,无论表格的数据源如何变化,我的方法如下:

假如表单上有一个grid1,在它的AfterRowColChange事件中加入以下一行代码:

LPARAMETERS nColIndex
BINDEVENT(thisform.grid1.columns(nColIndex).text1,"dblclick",thisform,"msg")

说明:本方法绑定“text1"的"dblclick"事件到表单的自定义方法“msg”
如果“msg”中的代码为“messagebox("123")”,当双击表格时就会执行自定义方法“thisform.msg”并弹出提示。

7 楼

利害.

8 楼

还是老乡历害,遗憾的是,bindevent()函数只有VFP9才有(VFP7,8我没用过,不知道有无,但VFP6肯定没有).我的系统是VFP6做的,看来要用这个函数就得升级系统了.

moz先生的writemethod也是VFP6中没有的(vfp9里有).

谢谢老乡康佳小雷.

谢谢MOZ先生.

9 楼

谢谢各位老师的无私奉献!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册