pb常用事件分析.docx
《pb常用事件分析.docx》由会员分享,可在线阅读,更多相关《pb常用事件分析.docx(24页珍藏版)》请在冰豆网上搜索。
pb常用事件分析
1.window中的事件
事件名触发的时机
01.Activate在窗口激活之前触发
02.Clicked当用户用鼠标单击窗口的空白区域(没有控件的区域)时触发
03.Close当关闭窗口时触发
04.CloseQuery当清除或关闭窗口时触发。
然后检查Message.ReturnValue的值,若为1,则窗口不能关闭
05.Deactivate当窗口变为非活动状态时触发
06.DoubleClicked当用户双击窗口的空白区域时触发
07.DragDrop当一个可拖动的控件被拖动到窗口上时触发
08.DragEnter当一个可拖动的控件进入窗口时触发
09.DragLeave当一个可拖动的控件离开窗口时触发
10.DragWithin当一个可拖动的控件在窗口内部拖动时触发
11.Hide在窗口被隐藏时触发
12.HotLinkAlarm在DDE中服务器应用已经发送了新的数据,客户DDE应用已经接收到这些数据时触发
13.Key当用户击了一个键且插入点不在RichTextEdit编辑控件或数据窗口控件时触发
14.MouseDown当用户在窗口的空白区域按下鼠标左键时触发
15.MouseMove当鼠标在窗口内移动时触发
16.MouseUp当用户在窗口的空白区域释放鼠标左键时触发
17.Open当程序调用以此窗口为参数的Open函数时,此事件在该窗口打开之后,显示之前触发
18.Help.........
19.Other当一个非PowerBuilder事件的Windows信息发生时触发
20.RButtonDown在窗口的空白区域单击鼠标右键时触发
21.RemoteExec当一个DDE客户应用发送了一个命令时触发
22.RemoteHotLinkStart当一个DDE客户应用开始一个热连接时触发
23.RemoteHotLinkStop当一个DDE客户应用结束一个热连接时触发
24.RemoteRequest当一个DDE客户应用请求数据时触发
25.RemoteSend当一个DDE客户应用已经发送了数据时触发
26.Resize当用户或程序打开或重设窗口大小时触发
27.Show当程序运行此窗口的show函数时,此事件在窗口显示之前触发
28.SystemKey当插入点不在某个行编辑中且用户按了ALT或ALT加其它键时触发
29.Timer在调用Timer函数后,经过了Timer函数指定的时间后触发
30.ToolBarMoved当MDI窗口的工具条移动时触发
以上是我新建一个window是window的事件原来的顺序,
下面是我自己常用的排序:
01.window打开时发生的事件
事件名触发的时机
Activate在窗口激活之前触发
Resize当用户或程序打开或重设窗口大小时触发
Open当程序调用以此窗口为参数的Open函数时,此事件在该窗口打开之后,显示之前触发
Show当程序运行此窗口的show函数时,此事件在窗口显示之前触发
02.window关闭时发生的事件
Deactivate当窗口变为非活动状态时触发
CloseQuery当清除或关闭窗口时触发。
然后检查Message.ReturnValue的值,若为1,则窗口不能关闭
Close当关闭窗口时触发
03.关于鼠标击键事件
Clicked当用户用鼠标单击窗口的空白区域(没有控件的区域)时触发
DoubleClicked当用户双击窗口的空白区域时触发
MouseDown当用户在窗口的空白区域按下鼠标左键时触发
MouseMove当鼠标在窗口内移动时触发
MouseUp当用户在窗口的空白区域释放鼠标左键时触发、
RButtonDown在窗口的空白区域单击鼠标右键时触发
注:
当按下鼠标左键时,MouseDown事件触发,当释放鼠标左键时,Clicked事件和MouseUp事件触发
04.计时触发
Timer在调用Timer函数后,经过了Timer函数指定的时间后触发
05.托动触发
DragDrop当一个可拖动的控件被拖动到窗口上时触发
DragEnter当一个可拖动的控件进入窗口时触发
DragLeave当一个可拖动的控件离开窗口时触发
DragWithin当一个可拖动的控件在窗口内部拖动时触发
06.菜单及菜单工具栏移动是触发
ToolBarMoved当MDI窗口的工具条移动时触发
07.其它不常用的(指的是我自己)
Hide在窗口被隐藏时触发
HotLinkAlarm在DDE中服务器应用已经发送了新的数据,客户DDE应用已经接收到这些数据时触发
RemoteExec当一个DDE客户应用发送了一个命令时触发
RemoteHotLinkStart当一个DDE客户应用开始一个热连接时触发
RemoteHotLinkStop当一个DDE客户应用结束一个热连接时触发
RemoteRequest当一个DDE客户应用请求数据时触发
RemoteSend当一个DDE客户应用已经发送了数据时触发
Key当用户击了一个键且插入点不在RichTextEdit编辑控件或数据窗口控件时触发
Help.........
Other当一个非PowerBuilder事件的Windows信息发生时触发
SystemKey当插入点不在某个行编辑中且用户按了ALT或ALT加其它键时触发
-----------------------------------------------------------------------
在window上的能应用的控件非常多
但是控件的事件有一部分是相同的
2.窗口上控件的公共事件
事件名触发的时机
Clicked当单击窗口或控件时触发
Constructor在窗口中的open事件发生之前触发
Destructor在窗口中的close事件发生之后触发
GetFocus在此控件得到焦点上时触发
LoseFocus在此控件失去焦点时触发
DragDrop当一个可拖动的控件被拖动到窗口或控件上时触发
DragEnter当一个可拖动的控件进入窗口或控件上时触发
DragLeave当一个可拖动的控件离开窗口或控件时触发
DragWithin当一个可拖动的控件在窗口或控件内部时触发
RbuttonDown在控件区域内单击鼠标右键时触发
Other当一个非PowerBuilder事件的Windows信息发生时触发
-------------------------------------------------------------------------
3.datawindow上的事件,按照顺序(除开公用事件)
事件名称事件触发的时机
01.ButtonClicking在数据窗口中的按钮对象正在被单击时触发
02.ButtonClicked在数据窗口中的按钮对象被单击后触发
03.DbError当数据窗口中发生了数据库错误时触发
04.DoubleClicked当用户双击数据窗口控件时触发;对于RichText风格的数据窗口,当双击数据窗口中的文本时触发
05.EditChanged当光标进入数据窗口对象中的一个字段时触发
06.Error当数据窗口数据表达式或属性表达式中发现错误时触发
07.ItemChanged当数据窗口上的区域被修改并且失去了焦点(如用户按回车键、Tab键或箭头键,或者用鼠标选另一个区域)时触发
08.ItemError当一个域被修改并且失去焦点,且域不符合列上的合法性规则时触发
09.ItemFocusChanged当焦点改变时触发
10.PrintStart当数据窗口打印开始时触发
11.PrintEnd当数据窗口打印结束时触发
12.PrintPage在数据窗口的每一页设置打印格式之前触发
13.Resize当用户或程序重设窗口大小时触发
14.RetrieveStart当数据窗口检索将要开始时触发
15.RetrieveEnd当数据窗口的检索完成时触发
16.RetrieveRow在一行数据被检索出来之后触发
17.RowFocusChanging当数据窗口当前行正在改变时触发
18.RowFocusChanged当数据窗口当前行改变之后触发
19.ScrollHorizontal当用户用Tab键、箭头键或滚动条左右滚动数据窗口控件时触发
20.ScrollVertical当用户用Tab键、箭头键或滚动条上下滚数据窗口控件时触发
21.SqlPreview在调用Retrieve、Update或Selectrow函数时,SQL语句提交到DBMS之前触发
22.UpdateStart恰在调用Update函数之后,数据窗口中的改变发送到数据库之前触发
23.UpdateEnd当所有从数据窗口到数据库的修改完成时触发
说一下我个人常用的几种事件
01.数据窗口字段输入的时候触发的事件
EditChanged当光标进入数据窗口对象中的一个字段时触发
ItemChanged当数据窗口上的区域被修改并且失去了焦点(如用户按回车键、Tab键或箭头键,或者用鼠标选另一个区域)时触发
ItemFocusChanged当焦点改变时触发
ItemError当一个域被修改并且失去焦点,且域不符合列上的合法性规则时触发
如果EditChanged,ItemChanged,ItemFocusChanged这三个事件报错促发ItemError
如果在ItemChanged事件中设置了行为/返回代码1,则DataWindow控件拒绝接受数据且不允许焦点发生变化
02.鼠标单双击数据窗口按钮
ButtonClicking在数据窗口中的按钮对象正在被单击时触发
ButtonClicked在数据窗口中的按钮对象被单击后触发
eg:
choosecasedwo.name
case'cb_name'
//动作......
case.......
endchoose
03.数据窗口检索前后触发的事件
RetrieveStart当数据窗口检索将要开始时触发
RetrieveEnd当数据窗口的检索完成时触发
RetrieveRow在一行数据被检索出来之后触发
在RetrieveStart事件中设置了行为/返回代码2,在检索数据之前不要重置行,也就是上次retrieve的数据会被保留下来
04.打印前后
PrintStart当数据窗口打印开始时触发
PrintEnd当数据窗口打印结束时触发
PrintPage在数据窗口的每一页设置打印格式之前触发
4.单行编辑器控件、编辑掩码控件、多行编辑控件的事件
这三个控件有相同的事件,都有公共事件中除了Clicked事件之外的10种事件,另外还有Modify事件
Modify事件在控件的文本被改变之后,用户按了回车键或Tab键,或用鼠标把焦点改变到另一个控件上时触发
---------------------------------------------------------------------
5.超文本编辑控件的事件
事件名称触发的时机
01.FileExists当该控件的内容保存到一个已存在的文件时触发
02.InputFieldSelected当选定输入域后双击或按下回车键时触发
03.key当按下一个键时触发
04.Modify当该控件中的内容第一次改变,但还没有保存时触发
05.MouseDown当按下鼠标左键时触发
06.MouseMove当鼠标在该控件中移动时触发
07.MouseUp当放开鼠标左键时触发
08.PictureSelected当选定位图后双击或按下回车键时触发
09.PrintFooter当打印该控件内容的页脚时触发
10.PrintHeader当打印该控件内容的页眉时触发
11.RbuttonUp当在该控件中放开鼠标右键时触发
---------------------------------------------------------------------
6.滚动条事件
左右滚动条事件名称事件触发时机
LineLeft当点中了控件的左箭头时触发
LineRight当点中了控件的右箭头时触发
PageLeft当点中了控件的左部的开放空间时触发
PageRight当点中了控件的右部的开放空间时触发
Moved当控件的滚动钮被移动时触发
上下滚动条事件名称事件触发时机
LineDown当点中了控件的下箭头时触发
LineUp当点中了控件的上箭头时触发
PageDown当点中了控件的下部的开放空间时触发
PageUp当点中了控件的上部的开放空间时触发
Moved当控件的滚动钮被移动时触发
----------------------------------------------------------------------
7.列表框控件的事件
PowerBuilder提供了四个列表框控件:
列表框、图片列表框、下拉列表框和下拉图片列表框。
它们都有公共事件中除了Clicked事件之外的10种事件。
此外,下拉列表框和下拉图片列表框还有DoubleClicked事件、Modify事件和SelectionChanged事件。
列表框、图片列表框还有DoubleClicked事件和SelectionChanged事件。
------------------------------------------------------------------------
8.树状浏览控件的事件
事件名称事件触发时机
01.BeginDrag按下鼠标左键开始拖动时触发
02.BeginLabelEdit编辑TreeView选中的项标签时触发
03.BeginRightDrag按下鼠标右键开始拖动时触发
04.DeleteItemTreeView项被删除时触发
05.DoubleClicked双击鼠标左键时触发
06.EndLabelEdit对TreeView的项标签结束编辑时触发
07.ItemCollapsed当TreeView控件收缩完成时触发
08.ItemCollapsing当TreeView控件收缩开始时触发
09.ItemExpanded当TreeView控件展开后触发
10.ItemExpanding当TreeView控件展开之前触发
11.ItemPopulate当TreeView控件第一次展开时触发
12.RightClicked按下鼠标右键时触发
13.RightDoubleClicked在控件中双击鼠标右键时触发
14.SelectionChangedTreeView项目被选中后触发
15.SelectionChangingTreeView当前项目改变之前触发
16.Sort两个项目为排序进行比较时触发
-------------------------------------------------------------------------------
9.列表浏览控件的事件
事件名称事件触发时机
01.BeginDrag按下鼠标左键开始拖动时触发
02.BeginLabelEdit编辑ListView选中的项标签时触发
03.BeginRightDrag按下鼠标右键开始拖动时触发
04.ColumnClicked在控件中鼠标左键单击列标题时触发
05.DeleteAllItems所有项被删除时触发
06.DeleteItemListView项被删除时触发
07.DoubleClicked双击鼠标左键时触发
08.EndLabelEdit对ListView的项标签结束编辑时触发
09.InsertItem为ListView插入项时触发
10.ItemChanged控件中当前项目改变后触发
11.ItemChanging控件中当前项目改变前触发
12.key用户按下键时触发
13.RightClicked按下鼠标右键时触发
14.RightDoubleClicked在控件中双击鼠标右键时触发
15.Sort两个项目为排序进行比较时触发
----------------------------------------------------------------------------------
10.Tab页控件的事件
事件名称事件触发时机
01.DoubleClicked双击鼠标左键时触发
02.Key用户按下键时触发
03.RightClicked按下鼠标右键时触发
04.RightDoubleClicked在控件中双击鼠标右键时触发
05.SelectionChangingTab控件当前页改变之前触发
06.SelectionChangedTab控件当前页改变后触发
-----------------------------------------------------------------------------------
11.OLE控件的事件
事件名称事件触发时机
01.Close当OLE控件的服务器关闭时触发
02.Datachange服务器应用数据改变时触发
03.DoubleClicked在控件内双击鼠标左键时触发
04.Error当OLE控件操作出现错误时触发
05.ExternalExceptionOLE服务器自动执行处理以外的操作时触发
06.PropertyChangedOLE控件改变对象后触发
07.PropertyRequestEditOLE控件改变对象时触发
08.Rename当服务器中对象改名时触发
09.Save服务器写数据时触发
10.ViewChange服务器进行预览时触发
-------------------------------------------------------------------------------------
12.菜单事件
菜单对象的事件比较简单,只有两个Clicked事件和Selected事件。
Clicked事件:
在某菜单上单击鼠标左键时触发。
Selected事件:
光标移入菜单条时触发。
13.用户自定义事件
这种东东目前正在研究,太多了,慢慢来
转资料一份
PB中自定义事件ID含义
EventID含义内容浅析,
单选或多选按钮消息(前缀:
pbm_bm)
pbm_bmgetcheck单选按钮或多选按钮是否被选。
pbm_bmgetstate按钮是否加亮。
pbm_bmsetcheck将无线按钮或确认框的选中状态改为未选中状态,反之亦然。
pbm_bmsetstate加亮或不加亮按钮。
pbm_bmchange改变按钮的风格,例如,改为单选按钮或组合框。
单选或多选按钮通知消息(前缀:
pbm_bn)
pbm_bnclicked按钮控件被点中。
pbm_bndisable使按钮控件无效。
pbm_bndoubleclicked按钮控件被双点。
pbm_bndragdrop一个对象被放到按钮控件。
pbm_bndragenter一个对象被拖到按钮控件。
pbm_bndragleave一个对象被拖离按钮控件。
pbm_bndragover一个对象被拖经按钮控件。
pbm_bnhilite按钮控件被加亮。
pbm_bnpaint按钮控件被绘制。
pbm_bnsetfocus按钮控件获得聚焦。
pbm_bnunhilite按钮控件不被加亮。
通用对话框消息(前缀:
pbm_cb)
pbm_cbaddstring将字符串加到通用对话框。
pbm_cbdeletestring从通用对话框删除一个字符串。
pbm_cbdir加一个目录列表到通用对话框。
pbm_cbfindstring搜索以一组字符开头的字符串。
pbm_cbfindstringexact搜索与所提供的字符完全匹配的字符串。
pbm_cbgetcount列表框中的项数。
pbm_cbgetcursel当前被选项的数目。
pbm_cbgetdroppedcontrolset列表框在屏幕上的坐标位置。
pbm_cbgeteditsel编辑器控件中被选字符的范围。
pbm_cbgetextendedui缺省或扩展的用户界面。
pbm_cbgetitemdata重画的列表框中的4字节(32位)项。
pbm_cbgetitemheight列表框中某一项的高度。
pbm_cbgetlbtext列表框中的文本。
pbm_cbgetlbtextlen列表框中文本的长度。
pbm_cbinsertstring向列表框中增加新的字符串或4字节项。
pbm_cblimittext限制能被输入到列表框中的字符数。
pbm_cbresetcontent删除列表框中所有元素。
pbm_cbselectstring搜索匹配的字符串并显示。
pbm_cbsetcursel在列表框中选择并显示一项。
pbm_cbseteditsel在列表框的编辑区域中选择一块文本。
pbm_cbsetextendedui设置缺省或扩展的用户界面。
pbm_cbsetitemdata在列表框中设定4字节(32位)项。
pbm_cbsetitemheight设置列表框中项的高度。
pbm_cbshowdropdown转换(显示或隐藏)列表框中拖放区域。
通用对话框通知消息(前缀:
pbm_cbn)
pbm_cbndblclk用户在列表中某一项上双点。
pbm_cbndragdrop一个对象被放到通用对话框控件上。
pbm_cbndragenter一个对象被拖到通用对话框控件上。
pbm_cbndragleave一个对象被拖离通用对话框控件。
pbm_cbndragover一个对象被拖经通用对话框控件。
pbm_cbndropdown列表框的下放区域即将被显示。
pbm_cbneditchange编辑器控件中的文本发生变化。
pbm_cbneditupdate列表框编辑器控件中的文本即将被改变。
pbm_cbnerrspace列表框满,不能再向其中加入项。
pbm_cbnkillfocus通用列表框失去聚焦。
pbm_cbnselchange列表框中被选文本被改变。
pbm_cbnselendcancel用户按下了"取消"按钮。
pbm_cbnselendok用户按下了"确认"按钮。
pbm_cbnsetfocus通用对话控件拥有聚焦。
数据窗口消息(前缀:
pbm_dw)
pbm_dwclosedropdown关闭下拉式数据窗口。