版权声明:可以任意转载,转载时请务必以超链接形式标明如下文章原始出处和作者信息及本声明作者:xixi出处:http://blog.csdn.net/slowgrace/archive/2009/04/21/40......
版权声明:可以任意转载,转载时请务必以超链接形式标明如下文章原始出处和作者信息及本声明
作者:xixi
出处:http://blog.csdn.net/slowgrace/archive/2009/04/21/4098649.aspx
唉,折腾了好几个小时,终于折腾出来了。出来的时候高兴了一下下。现在好像又没啥感觉了。闲话少说,赶紧记下来。
话说我要测试改字段值后的一系列变化,所以我想让程序模拟自动随机地改一个子窗体里的字段值,好激发这个字段对应的控件的dirty和beforeUpdate事件。代码如下:
说明如下:
(1)关键是用sendkeys函数模拟键盘消息
(2)sendkeys函数只能向当前有焦点的窗口发送键盘消息,所以要先把子窗体的控件设为有焦点,这样当前活动窗口获得键盘输入后才能把字母输入到合适的位置
(3)输入新的数值即会激发dirty事件,而beforeupdate事件的激发则要用shift tab键来使焦点移动后激发。
(4)我本来是直接写了另外一个控件.setfocus来移动焦点,但是发现这个消息貌似比之前的sendkeys走得快,导致新输入的字符串录入到另外一个控件里了。严重怀疑鼠标和键盘不走同一个队列。
(5)还试着用过API函数sendmessage发WM_SETTEXT消息。未果。因为ACCESS窗体的文本框控件貌似不是标准的带Hwnd的控件,用SPY 都查不到句柄。看一网友用enumchildwindow试着找类似的delphi窗体的控件句柄失败告终,我也就放弃了。
1/2 1 2 下一页 尾页 |