再谈在Grid数据窗口中,鼠标调整数据宽度时对应的事件

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2017-06-13 17:06:09

  孔夫子问:
蔡大侠说在Grid风格的数据窗口中,当用户用鼠标调整数据宽度时,不对应任何事件,但我确实希望对应一个事件,因为我制作的学生成绩表是grid和一标题(文本框)组合而成的,标题是居中显示方式,当用户用鼠标调整数据宽度时(这种操作很有必要,如打印数据时),标题理应自动居中,因此要在此条件下(调整数据宽度时)编程,即对此事件编程.如果不对应任何事件,该如何解决上述情况?请蔡大侠或哪位高手指点,在此谢了.

蔡毅答:
窗口打开时,保存最后一列的X值;打印前,把最后一列的X值与原来保存的比较,如果有变化的话,把标题文本框的宽度调整为最后一列的X值加上该列的宽度。

孔夫子问:
非常感谢蔡大侠,但这种办法势必要增设计一个按钮,这对于用户来说完全没必要,因为用户在调整了宽度后,文本框中字就自动居中,没必要用户再去点击那个按钮,有没有别的办法?

Kukoc答:
蔡毅说得没有错,不必另外增加按钮,只是在打印按钮前判断就可以了,我有几个应用就是用这种办法。
如果实在要找对应事件的话你试试用这三个user event:pbm_lbuttondown,pbm_mousemvoe,pbm_lbuttonup
如果:
pbm_lbuttondown: 在数据窗口标题栏(getrow() = 0 and GetObjectAtPointer =你的标题)按下鼠标左键,记一个标志;
pbm_mousemvoe: 鼠标移动了,在记一个标志;
pbm_lbuttonup: 这时鼠标左键up,再判断最后一列的位置是否发生变化,如果有,写你的脚本。

你试试吧,不知有没有用。

另:在Grid数据窗口的Clicked事件中加入:
If row = 0 Then return 1
可以禁止调整列宽度。


Tags:

作者:佚名
分享到: 微信 更多