PB6.5 在窗口刚打开动态调整Tab的默认页面在线教程
---- 在开发中我们会遇到,在主窗口中利用Radio Button 选择后,打开另一窗口,将新窗口中的Tab页面设定为自己对应的页面。利用Openwithparm()打开新窗口带入参数,在窗口的Open事件中加入Selecttab()函数设定Tab的默认页面不成功。
---- 原因:在窗口的Open 事件执行后,窗口中的控件开始设定各自的默认值。Tab原默认值将自己设定的属性值覆盖,跳转失败。
---- 解决方法:利用PostEvent()函数触发一自定义事件,在自定义事件中完成控件的属性值设定。
---- 具体步骤:
窗口: 主窗口(W_main),子窗口(w_try)w_main的控件收音机按钮:rb_1, rb_2, rb_3命令按钮:cb_1w_try 的控件TAB:tab_1中三个页面tabpage_1,tabpage_2, tabpage_3
增加w_try一自定义事件d_cust 无事件id,返回参数无。
编写cb_1 的Clicked事件integer t_sele// 定义选择后带入的参数if rb_1.Checked thent_sele = 1elseif rb_2.Checked thent_sele = 2elseif rb_3.Checked thent_sele = 3elset_sele = 0end if// 打开子窗口并带入选择变量OpenWithParm(W_try, t_sele)
W_try中的Open事件Double R_sele// 获取选择参数R_sele = message.DoublePram…// 出发自定义事件d_cust 带入一数值形参数Parent.PostEvent("d_cust", 0, R_sele)
W_try 的d_cust 事件integer r_sele// 得到选择参数r_sele = message.LongParm// 设定tab页面tab_1.selecttab(r_sele)
增加w_try一自定义事件d_cust 无事件id,返回参数无。
编写cb_1 的Clicked事件integer t_sele// 定义选择后带入的参数if rb_1.Checked thent_sele = 1elseif rb_2.Checked thent_sele = 2elseif rb_3.Checked thent_sele = 3elset_sele = 0end if// 打开子窗口并带入选择变量OpenWithParm(W_try, t_sele)
W_try中的Open事件Double R_sele// 获取选择参数R_sele = message.DoublePram…// 出发自定义事件d_cust 带入一数值形参数Parent.PostEvent("d_cust", 0, R_sele)
W_try 的d_cust 事件integer r_sele// 得到选择参数r_sele = message.LongParm// 设定tab页面tab_1.selecttab(r_sele)
---- 用户如想动态改变窗口中放置的控件的默认属性,改变中具体操作即可。