au3retry 发表于 2012-8-8 13:38:26

如何才能隐藏 分页标签 中的其中一页

本帖最后由 au3retry 于 2012-8-9 15:02 编辑

如何才能隐藏   分页中的页

试了页可以不见,但页中的控件还在,能不能将页中控件做成隶属本页,然后将页删了,控也跟着删

如果能方便做到这以上,AU3分页标签这个功能就爽了

xiehuahere 发表于 2012-8-8 16:36:16

本帖最后由 xiehuahere 于 2012-8-8 16:39 编辑

回复 1# au3retry


没看到隐藏的方法,好像只能删除,需要的时候重建。
下面是在官网的一个例子上稍作修改(原代码有点问题#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <GuiTab.au3>
#include <Array.au3>

$Form1 = GUICreate("Use Ctrl+T and CTRL+W to add/remove tabs", 625, 443, 192, 124)
$Tab1 = GUICtrlCreateTab(5, 30, 616, 406)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
GUICtrlCreateTabItem("")
$Add = GUICtrlCreateButton("Add", 5, 5, 75, 25, $WS_GROUP)
$Remove = GUICtrlCreateButton("Remove", 85, 5, 75, 25, $WS_GROUP)
Dim $Form1_AccelTable = [["^t", $Add],["^w", $Remove]]
GUISetAccelerators($Form1_AccelTable)
GUISetState(@SW_SHOW)

; Log both tabitems AND edits
Global $TABS, $EDITS

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
      Case $GUI_EVENT_CLOSE
            Exit
      Case $Add
                        ; Log both the tab AND the edit ControlID
                        If Not IsArray($TABS) Then
                                Dim $TABS, $EDITS
                        Else
                                ; ReDim BOTH arrays
                                ReDim $TABS
                                ReDim $EDITS
                        EndIf
                        $TABS = GUICtrlCreateTabItem("TabSheet " & UBound($TABS))
                         $EDITS = GUICtrlCreateEdit(UBound($EDITS), 7, 55, 610, 370)
                         GUICtrlCreateTabItem("")
      Case $Remove
                        If Not IsArray($TABS) Then ContinueLoop
                        ; Read the tab index
                        $iTab = GUICtrlRead($Tab1)
                        ; Remove the tab
                        GUICtrlDelete($TABS[$iTab])
                        ; Remove the tab AND the edit from the arrays
                        _ArrayDelete($TABS, $iTab)
                        _ArrayDelete($EDITS, $iTab)
    EndSwitch
WEnd

au3retry 发表于 2012-8-8 16:59:58

谢了,我试能不能达到跟隐藏差不多的效果

au3retry 发表于 2012-8-9 15:10:30

回复 2# xiehuahere

页中的控件隐藏不了

shinco1 发表于 2012-8-9 15:46:20

试下。。。。。。。。

xiehuahere 发表于 2012-8-9 19:14:03

本帖最后由 xiehuahere 于 2012-8-9 19:16 编辑

回复 4# au3retry


是的,我上面例子里的方法是把页中的所有控件也一并删除的。
即,将标签页的建立(包括其中控件)写成一个公共函数,删除写成一个公共函数,直接调用这两个方法实现删除和建立。
关于隐藏,确实没看到如何实现。
你倒是可以试试其他方法,例如不使用标准标签而是通过按钮来实现。
页: [1]
查看完整版本: 如何才能隐藏 分页标签 中的其中一页