数据窗口事件的主要事件和触发时机:

事件
触发时机
ButtonClicking 当数据窗口对象上的按钮对象的SuppressEventProcessing属性设置为no后,用户单击该按钮时触发(在Buttonclicked事件之后,Clicked事件之前),在系统处理按钮的缺省动作前触发
ButtonClicked 当数据窗口对象上的按钮对象的suppresseventprocesing属性设置为no后,用户单击该按钮时触发,在系统处理按钮的缺省动作后触发
Clicked 当用户单击数据窗口控件中非编辑区域或其他位置时触发
Constructor 窗口的open事件发生之前触发
DBError 在数据窗口控件访问数据库过程中发生数据库错误时触发
Destructor 在窗口的close事件发生之后触发
DboubleClicked 当用户双击数据窗口控件中非编辑域或其他位置时角触发
DragDrop 当某个被拖曳控件放置到数据窗口控件时被触发
DragEnter 当某个被拖曳控件进入数据窗口控件时被触发
DragLeave 当某个被拖曳控件离开数据窗口控件时被触发
DragWithin 当某个被拖曳控件处于数据窗口控件时被触发
EditChanged 当用户在数据窗口控件的编辑控件中按任何键时触发
Error 当数据窗口对象的数据或表达式属性发生错误时触发
GetFcocus 当数据窗口控件得到输入焦点前触发
ItemChanged 当数据窗口控件中某个域被修改并且该域推动输入焦点时触发
ItemError 当用户修改焦点后移开,输入的数据没能通过该列的有效性检验时触发
ItemFocusChanged 当焦点从一个可编辑字段转移到另一个可编辑字段时触发
LoseFocus 当数据窗口控件本身失去焦点时触发
Other 当发生了某个window消息而该消息有不对应该控件的某个powerbuilder事件时触发
PrintEnd 在数据窗口打印结束后触发
PrintPage 在每页数据格式化打印之时触发
RbuttonDown 用鼠标右击该控件时触发
Resize 当用户或程序改变数据窗口控件的大小时触发
RetrieveEnd 当数据窗口检索完数据后触发
RetrievRow 当数据窗口检索每一条记录时触发
Retrievestart 当数据窗口开始检索每一条记录触发
RowFocusChanged 当数据窗口控件的当前行被改变时触发
ScrollHorizontal 当用户使用tab上下箭头键或滚动条左右移动数据窗口中的数据时触发
ScrollVertical 当用户使用tab上下箭头键或滚动条上下移动数据窗口中的数据时触发
SQLPreview 在调用retrieve(),update()或reselectrow()函数后,SQL语句被发送到DBMS前触发
UpdateEnd 当数据窗口更新了数据库后触发
UpdateStart 当调用update()函数后,修改数据库数据前触发

下面做一个练习以体会数据窗口常用事件的触发时机:

建立一个w_dwevent窗口,其上放置自定义的数据窗口控件(可做基本的数据编辑及处理),两个文本标签以显示触发的事件名称,一个列表框以改变当前输入焦点和列出所触发的所有事件。

修改列表框控件的排序属性,设定为"假"。

修改该窗口的菜单名称及标题属性值。

在窗口的open事件中加入如下代码:

修改m_main菜单,在"销售报表"项中的clicked事件中加入语句:opensheet(w_dwevent,w_main,2,layered!)

在窗口的dw_1控件的各常用事件中加入st_2.text="事件名称"代码。其中getfocus事件的代码如下:

losefocus的事件代码如下:

itemfocuschanged的代码如下:

按上面的形式加入其它事件的代码。

运行程序,打开该窗口,使用其中的数据窗口控件,查看事件的触发时机。

返回

 

数据空间