父对象的名和程序中添加现有对象的事件代码!
两个问题:
一: 表单中有几十个容器,每个容器有一个图像控件,现在当点击某一图像控件时,想知道该图像控件在哪一个容器中,就是想知道那个容器的 NAME,查找帮助文档,一时找不到!
二:由于对现有的几十个容器添加CLICK 事件代码,有没有办法在表单的 INIT 里把这段代码赋给现有的几十个容器的CLICK 事件 和 赋给容器里图像控件的CLICK 的事件。
谢谢各位帮助!
[解决办法]
每个容器只能放一个图像控件,这样你就知道那个图像控件的容器NAME了。因为容器是放在表单上的,而图像控件是放在容器里的,不能把图像控件直接放在表单上,而是要将图像控件放在容器里。
后面的CLICK事件就好写代码了。
[解决办法]
1. 这个应该不难啊,每个图像控件的 click 中写 messagebox(This.Parent.Name)
2. 如果没有其他的容器控件且每个容器中只有一个图像控件 Image1,这样绑定就行了:
首先,表单添加一自定义方法: myClick
表单 Init 中:
For Each oo as Container In Thisform.Controls If oo.BaseClass == 'Container' BindEvent(oo, 'Click', Thisform, 'myClick') BindEvent(oo.Image1, 'Click', Thisform, 'myClick') Endif Endfor
[解决办法]
这样就可以了,Click 事件代码,把这段代码加到自定义方法中,然后再绑定所有 Image 即可。
If Amouseobj(aMyMouse)>0 Messagebox(aMyMouse(1).Name) && 鼠标指针位于的对象 Messagebox(aMyMouse(2).Name) && 鼠标指针位于的对象容器 Messagebox(Strtran(aMyMouse(2).Name,'Container','')) Messagebox(aMyMouse(3)) && 鼠标指针相对于对象容器的水平坐标 (X),单位为像素 Messagebox(aMyMouse(4)) && 鼠标指针相对于对象容器的垂直坐标 (Y),单位为像素Endif