找回密码
 加入
搜索
查看: 4518|回复: 8

[GUI管理] 请教各位老大:tab不同分页控件的创建问题【已解决】

  [复制链接]
发表于 2010-6-26 23:32:39 | 显示全部楼层 |阅读模式
本帖最后由 禁忌石 于 2010-7-3 14:03 编辑



在tab0的输入框中输入数字,以在tab1中建相应数量的Label,但结果建在整个gui中,不是tab1中,请教

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GuiEdit.au3>
#include <GuiListView.au3>
#Include <GuiTab.au3>
#Include <GuiEdit.au3>

#Include <GuiComboBox.au3>


GUICreate("GUI", 600, 400)
        $tab = GUICtrlCreateTab(2, 2, 596, 396)
        $tab0 = GUICtrlCreateTabItem("TAB0")
        GUICtrlCreateLabel("请输入数量:", 40, 40,100,20,$SS_RIGHT)
        $minhand=GUICtrlCreateInput("", 150, 35, 200, 20)
        $tab1OK = GUICtrlCreateButton("确定", 220, 100,80, 50)
        $tab1 = GUICtrlCreateTabItem("TAB1")
       
        GUISetState()
       
       
       
While 1
        $msg = GUIGetMsg()
        Select
                Case $msg = $GUI_EVENT_CLOSE
                        EXIT
                Case $msg=$tab1OK
                        For $i=1 to _GUICtrlEdit_GetText($minhand)
                                GUICtrlCreateLabel("Label "&$i, 40, 40+20*$i)
                        Next
        EndSelect       

     
WEnd

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 2010-6-27 00:33:56 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GuiEdit.au3>
#include <GuiListView.au3>
#Include <GuiTab.au3>
#Include <GuiEdit.au3>

#Include <GuiComboBox.au3>


GUICreate("GUI", 600, 400)
        $tab = GUICtrlCreateTab(2, 2, 596, 396)
        $tab0 = GUICtrlCreateTabItem("TAB0")
        GUICtrlCreateLabel("请输入数量:", 40, 40,100,20,$SS_RIGHT)
        $minhand=GUICtrlCreateInput("", 150, 35, 200, 20)
        $tab1OK = GUICtrlCreateButton("确定", 220, 100,80, 50)
      
        
        GUISetState()
        
        
        
While 1
        $msg = GUIGetMsg()
        Select
                Case $msg = $GUI_EVENT_CLOSE
                        EXIT
                                        Case $msg=$tab1OK
                                                 $tab1 = GUICtrlCreateTabItem("TAB1")
                        For $i=1 to _GUICtrlEdit_GetText($minhand)
                                GUICtrlCreateLabel("Label "&$i, 40, 40+20*$i)
                        Next
        EndSelect        

     
WEnd

不是很完美
发表于 2010-6-27 01:22:39 | 显示全部楼层
本帖最后由 afan 于 2010-6-27 01:24 编辑

换个角度看问题
GUICreate("GUI", 600, 400)
$tab = GUICtrlCreateTab(2, 2, 596, 396)
$tab0 = GUICtrlCreateTabItem("TAB0")
GUICtrlCreateLabel("请输入数量:", 40, 40, 100, 20);, $SS_RIGHT)
$minhand = GUICtrlCreateInput("", 150, 35, 200, 20)
$tab1OK = GUICtrlCreateButton("确定", 220, 100, 80, 50)
$tab1 = GUICtrlCreateTabItem("TAB1")
Dim $Label[21]
For $i = 1 To 20 ;你准备如何自动生成Label可在此先创建出来
        $Label[$i] = GUICtrlCreateLabel("Label " & $i, 40, 20 + 17 * $i)
        GUICtrlSetState(-1, 32)
Next
GUICtrlCreateTabItem("")
GUISetState()

While 1
        $msg = GUIGetMsg()
        Select
                Case $msg = -3
                        Exit
                Case $msg = $tab1OK
                        $zs = GUICtrlRead($minhand) 
                        If $zs > 20 Then MsgBox(0, 0, '限制最多设置20,多出部分将无效')
                        For $i = 1 To 20
                                If $i <= $zs Then GUICtrlSetState($Label[$i], 16)
                                If $i > $zs Then GUICtrlSetState($Label[$i], 32)
                        Next
        EndSelect
WEnd

评分

参与人数 1贡献 +5 收起 理由
lynfr8 + 5 很棒的见解

查看全部评分

 楼主| 发表于 2010-6-27 07:43:14 | 显示全部楼层
谢谢上面两位,
这两种方法都不错,但的确不完美
不过还是相当的感谢
发表于 2010-6-28 01:10:56 | 显示全部楼层

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <GuiTab.au3>
#include <GuiEdit.au3>

Dim $laber[1000], $labernumber
$hWin = GUICreate("tab不同分页控件的创建问题", 600, 400)
$tab = GUICtrlCreateTab(2, 2, 596, 396)
$tab0 = GUICtrlCreateTabItem("TAB0")
GUICtrlCreateLabel("请输入数量:", 40, 40, 100, 20, $SS_RIGHT)
$minhand = GUICtrlCreateInput("", 150, 35, 200, 20)
$tab1OK = GUICtrlCreateButton("确定", 220, 100, 80, 50)
$tab1 = GUICtrlCreateTabItem("TAB1")
GUISetState()

While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $tab1OK
For $n = 1 To $labernumber
GUICtrlDelete($laber[$n])
Next
For $i = 1 To _GUICtrlEdit_GetText($minhand)
GUISwitch($hWin, $tab1)
$laber[$i] = GUICtrlCreateLabel("Label " & $i, 40, 40 + 20 * $i)
GUICtrlCreateTabItem("")
$labernumber = $i
Next
EndSelect
WEnd

函数参考
GUICtrlCreateTabItem
注意/说明
...
创建一个新的控件到一个存在的标签项目上,使用 GUISwitch($hWin,$tabitem) 选择标签并创建您的新控件. 别忘了使用 GUICtrlCreateTabItem("") 关闭标签项目.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1威望 +2 金钱 +30 收起 理由
afan + 2 + 30

查看全部评分

发表于 2010-6-28 01:29:06 | 显示全部楼层
函数参考
GUICtrlCreateTabItem
注意/说明
...
要创建一个新的控件到一个存在的标签项目上,使 ...
lynfr8 发表于 2010-6-28 01:10


学习了,不知道GUISwitch还有这个用法~~
    28行的 GUICtrlCreateTabItem("") 移到 30行的 next 后会更完美,不会频繁刷新~

评分

参与人数 1金钱 +9 收起 理由
lynfr8 + 9 很棒的见解,谢谢提醒。

查看全部评分

发表于 2010-6-29 12:39:59 | 显示全部楼层
看来又学会一招了!!!
 楼主| 发表于 2010-7-3 13:31:19 | 显示全部楼层
谢谢lynfr8,这正是我想要的,谢谢
发表于 2011-2-21 11:46:20 | 显示全部楼层
thank you very much
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-11 03:31 , Processed in 0.080244 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表