主题:怎样让表格控件里每一列的text1的dblclick事件执行相同的代码段???
jinlonggao
[专家分:17130] 发布于 2007-03-06 17:01:00
我有一个表单,其中有一表格,可以显示任何一个在该表单运行之前已经打开的数据表,现在我想在每个单元格中双击鼠标时执行同样一段代码.我又不想给每一列的TEXT1控件的dblclick事件都写上该代码,因为,此表格的列数,在显示不同的数据表时可能不同.请问有没有办法在运行时自动让每列的TEXT1的DBLCLICK事件执行同样一段代码.
这个问题有一定难度,敬请高手不吝赐教!
回复列表 (共9个回复)
沙发
djGong2002 [专家分:5750] 发布于 2007-03-06 17:58:00
设置表格的AllowCellSelection为.F.,然后直接在表格的DblClick事件中写代码
板凳
jinlonggao [专家分:17130] 发布于 2007-03-06 19:03:00
djGong2002的办法我试过了,可以,但是当:
表格的AllowCellSelection为.f.后,表格就不能编辑,也不能选择其中某个单元格的值,即便达到了目的,又有什么意义呢?
我的要求是既要能选择每个单元格,又要能单击或双击单元格时运行统一的代码段.
先谢谢 djGong
请专家们继续支持我!!
3 楼
jinlonggao [专家分:17130] 发布于 2007-03-06 19:35:00
既然grid的setall()函数可以给表格中所有的某个属性赋同样的值,难道就没有一个什么函数能让表格控件中的所有text1或header1执行某段同样的代码吗?
是我们没发现呢? 还是grid控件确实没有这样的功能呢?
希望专家们赶快想办法?
4 楼
moz [专家分:37620] 发布于 2007-03-06 21:09:00
请老金原谅,
实在是没有精力去试什么了,
不过我瞎翻了一下:
.readmethod 读取方法程序文本
.writemethod 写入方法程序文本
还有,我看到 GRID 的双击,相当于文本框的双击 -- 全选
还有,记得以前见到过有写鼠标事件的,不知道能不能从鼠标入手.
如果是我,走头无路的时候,我只能做一个隐藏的按钮,
在每一个要调用事件的地方加上去 .click
剩下的事情就在余生八十年的岁月里去寻找替代方法.
5 楼
moz [专家分:37620] 发布于 2007-03-06 22:11:00
刚又想起一个运行时的集合叫做 .Controls
不知道能不能用得上。
6 楼
zxl931 [专家分:3420] 发布于 2007-03-06 23:43:00
只要一行代码可以解决此问题,无论表格的数据源如何变化,我的方法如下:
假如表单上有一个grid1,在它的AfterRowColChange事件中加入以下一行代码:
LPARAMETERS nColIndex
BINDEVENT(thisform.grid1.columns(nColIndex).text1,"dblclick",thisform,"msg")
说明:本方法绑定“text1"的"dblclick"事件到表单的自定义方法“msg”
如果“msg”中的代码为“messagebox("123")”,当双击表格时就会执行自定义方法“thisform.msg”并弹出提示。
7 楼
moz [专家分:37620] 发布于 2007-03-07 07:06:00
利害.
8 楼
jinlonggao [专家分:17130] 发布于 2007-03-07 14:53:00
还是老乡历害,遗憾的是,bindevent()函数只有VFP9才有(VFP7,8我没用过,不知道有无,但VFP6肯定没有).我的系统是VFP6做的,看来要用这个函数就得升级系统了.
moz先生的writemethod也是VFP6中没有的(vfp9里有).
谢谢老乡康佳小雷.
谢谢MOZ先生.
9 楼
zhzoli [专家分:20] 发布于 2010-10-31 10:44:00
谢谢各位老师的无私奉献!!!
我来回复