Jump to content

[SOLVED] TabSheet on click?


johnmcloud
 Share

Recommended Posts

Hi guys, i have a question about TabSheet:

#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("Test GUI", 413, 273, 210, 151)
GUISetIcon("", -1)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
  Case $GUI_EVENT_CLOSE
   Exit
  Case $TabSheet2
   MsgBox(0,0,"Test")
EndSwitch
WEnd

I want to set, when user click on TabSheet2, a event, in this case i have make a simply MsgBox. But case not work. How to set an event when click on TabSheet2?

Thanks for support :)

EDIT. A second and last question. Is see now Ctrl+TAB don't change the Tab position like windows. How to set it? Thanks

Edited by johnmcloud
Link to comment
Share on other sites

  • Moderators

johnmcloud,

You need to look for the entire tab control being actioned and then use GUICtrlRead to find the active tab: ;)

#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

$GUI = GUICreate("Test GUI", 413, 273, 210, 151)
GUISetIcon("", -1)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $PageControl1
            Switch GUICtrlRead($PageControl1)
                Case 1 ; Remember tabs start at 0
                    MsgBox(0, 0, "Test")
            EndSwitch
    EndSwitch
WEnd

In your second question, do you mean that you want Ctrl-TAB to move the focus from one tab to another? :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

johnmcloud,

No, I do not. :)

But this will let you do it with your tabs: ;)

#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

Global $aTab[3]

$GUI = GUICreate("Test GUI", 413, 273, 210, 151)
GUISetIcon("", -1)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
$aTab[0] = GUICtrlCreateTabItem("TabSheet1")
$aTab[1] = GUICtrlCreateTabItem("TabSheet2")
$aTab[2] = GUICtrlCreateTabItem("TabSheet3")
GUICtrlCreateTabItem("")

$cDummy = GUICtrlCreateDummy()

GUISetState(@SW_SHOW)

Local $aAccelKeys[1][2] = [["^{TAB}", $cDummy]]
GUISetAccelerators($aAccelKeys)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $PageControl1
            Switch GUICtrlRead($PageControl1)
                Case 1
                    MsgBox(0, 0, "Test")
            EndSwitch
        Case $cDummy
            ; Get index of next tab to focus - Mod resets to 0 instead of 3
            $iIndex = Mod(GUICtrlRead($PageControl1) + 1, 3)
            GUICtrlSetState($atab[$iIndex], $GUI_SHOW)
    EndSwitch
WEnd

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

johnmcloud,

Picky! :)

#include <guiconstantsex.au3>
#include <tabconstants.au3>
#include <windowsconstants.au3>

Global $aTab[3]

$GUI = GUICreate("Test GUI", 413, 273, 210, 151)
GUISetIcon("", -1)
$PageControl1 = GUICtrlCreateTab(8, 8, 396, 256)
$aTab[0] = GUICtrlCreateTabItem("TabSheet1")
$aTab[1] = GUICtrlCreateTabItem("TabSheet2")
$aTab[2] = GUICtrlCreateTabItem("TabSheet3")
GUICtrlCreateTabItem("")

$cDummy = GUICtrlCreateDummy()

GUISetState(@SW_SHOW)

Local $aAccelKeys[1][2] = [["^{TAB}", $cDummy]]
GUISetAccelerators($aAccelKeys)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cDummy
            ; Get index of next tab to focus - Mod resets to 0 instead of 3
            $iIndex = Mod(GUICtrlRead($PageControl1) + 1, 3)
            GUICtrlSetState($atab[$iIndex], $GUI_SHOW)
            ;If $iIndex = 1 Then ContinueCase
            ContinueCase
        Case $PageControl1
            Switch GUICtrlRead($PageControl1)
                Case 1
                    MsgBox(0, 0, "Test")
            EndSwitch

    EndSwitch
WEnd

M23

Edit: You do not need the If before the ContinueCase as the Switch does that for you. ;)

Edited by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...