用过Tab控件的朋友帮忙,问题多多!

newstone1 2003-08-20 11:23:24
个人认为tab控件是Powerbuilder最失败的控件!
我遇到了很多问题:
首先,对页面如tabpage_1上的按钮控件等无法指定taboreder!?不信的可以试试,成功的请帮忙救我!!!!!!
其次,要想设定某个控件得到焦点,编程很不方便,请问大家是在那个事件下设定焦点的,例如:
我想在点击了,tabpage_2后,将焦点设定在cb_3上(默认是cb_1).
再次,页面如tabpage_1的数据窗口无法输入数据.问题如下:
在数据窗口控件内插入一行,用鼠标点击某列时,出现一黑块,没有出现用于输入字符的竖线!我的DW_1关联d_case对象,在窗口的cb_add的clicked事件下代码为:
dw_1.ScrollToRow(dw_1.InsertRow(0))
dw_1.SetFocus()
奇怪的是,同样的代码在另一个窗口中可用!
尽管Pb给tab控件给出了一大堆属性,事件,函数.但在使用过程中极不灵活!原因在于这些咚咚是针对控件tab_1,tab_2...,而我们在使用过程中往往需要的是对一个控件内的多个页面如tabpage_1,tabpage_2...进行操作.而这些页面可用的函数事件很少,解决不了问题!
...全文
107 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
runsoft 2003-08-20
  • 打赏
  • 举报
回复
UP
jackzhang168 2003-08-20
  • 打赏
  • 举报
回复
up
flyhot 2003-08-20
  • 打赏
  • 举报
回复
mark
prain2003 2003-08-20
  • 打赏
  • 举报
回复
1、如果你想在图形下设置taborder属性,你可以在选中的tab页上单击数表右键,出现的右键菜单上有Tab order 你就可以设置顺序拉。
2、你需要非常清楚对象的概念,以及某个控件对象是属于窗口的还是属于某个tab页的。
newstone1 2003-08-20
  • 打赏
  • 举报
回复
在数据窗口控件内插入一行,用鼠标点击某列时,出现一黑块,没有出现用于输入字符的竖线!
-----------------------------------------------------------------------
白兔和凤儿说的方法都不行,还是老样子,这个跟数据库是access,而不是Pb自带的有关系吗?
jdsnhan 2003-08-20
  • 打赏
  • 举报
回复
不觉得很难用。对于你想转换的焦点,注意好parent级就行了 。
gcg_cumt 2003-08-20
  • 打赏
  • 举报
回复
要想获得更大的灵活性,可以创建一个userobject(custom visiual)假设名字为uo_1。
在窗口上放置一个tab控件,可以不加任何tabpage,在窗口的open事件中写:tab_1.opentab(uo_1,1)

在tab_1的selectchanged事件中可以通过this.tabtriggerevent("ue_aa",newindex,0)和你创建的userobject通信。其中ue_aa是在uo_1中自定义的事件。

通常的用法如白兔和凤儿所说。
dingzhaofeng 2003-08-20
  • 打赏
  • 举报
回复
不觉得!
defasi 2003-08-20
  • 打赏
  • 举报
回复
我觉得还可以了
nhdj 2003-08-20
  • 打赏
  • 举报
回复
同意楼上的,用上面控件必须先指定是属于哪一个 tabsheet才行
klbt 2003-08-20
  • 打赏
  • 举报
回复
其次,要想设定某个控件得到焦点,编程很不方便,请问大家是在那个事件下设定焦点的,例如:
我想在点击了,tabpage_2后,将焦点设定在cb_3上(默认是cb_1).
------------------------------------------------------------------------------
在s\SelectionChanged事件编码。
------------------------------------------------------------------------------
再次,页面如tabpage_1的数据窗口无法输入数据.问题如下:
在数据窗口控件内插入一行,用鼠标点击某列时,出现一黑块,没有出现用于输入字符的竖线!我的DW_1关联d_case对象,在窗口的cb_add的clicked事件下代码为:
dw_1.ScrollToRow(dw_1.InsertRow(0))
dw_1.SetFocus()
------------------------------------------------------------------------------
tab_1.tabpage_1.dw_1.ScrollToRow(dw_1.InsertRow(0))
tab_1.tabpage_1.dw_1.SetFocus()
liaolwj 2003-08-20
  • 打赏
  • 举报
回复
你的数据窗口如果是在tab上的,那你的写法应该是
tab_1.tabpage_1.dw_1.scrolltorow(row)
tab_1.tabpage_1.dw_1.setfocus()
还有,你的其他控件如果是在tab上的,你需要在前面加上是那个页面的如
tab_1.tabpage_1.cb_1.setfocus()

至于taboreder,那是没有的,但你想想我们建立的时候就已经确认了它的先后了。如果你一定要处理的你可以用
tab_1.selectedtab = 你需要的那个tabpage页面

反正用了这么久还比较好用的。

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧