Я уже разработал свой ListBox (скриншот прилагается).

Перечислено как:

  1. Inquiry_Callback

  2. OptOut_Unsub

  3. OptOut_Callback

  4. Dispute_Callback

  5. Others_Others

  6. S_Inquiry_Callback

  7. S_OptOut_Unsub

  8. S_OptOut_Callback

  9. S_Dispute_Callback

  10. S_Others_Others

  11. S_Inquiry_Callback_N

  12. S_OptOut_Callback_N

  13. S_Dispute_Callback_N

  14. Email_Opt_out_IVR

  15. S_Email_OptOut_IVR

  16. S_Email_OptOut_IVR_N

У меня есть 29 клиентов, которые могут попасть в одну из указанных выше категорий, то есть 16 х 29 = 464 шаблона.

Мой вопрос заключается в том, как я могу изменить свой список, чтобы при наведении курсора на какие-либо элементы (используя стрелки вверх / вниз) для этого конкретного элемента появлялось новое скользящее окно списка справа, и в списке все 29 клиентов. Как и в Word / Excel, когда вы нажимаете на File Menu, появляется подменю, а затем для каждого элемента в слайд-меню появляется меню 2-го уровня со своими собственными пунктами.

Вот код моего списка:

Gui, Add, ListBox, gAction vChoise w190 h440 c66ff00, Inquiry_Callback|OptOut_UnSub|OptOut_Callback|Dispute_Callback|Others_Others|-|S_Inquiry_Callback|S_OptOut_Unsub|S_OptOut_Callback|S_Dispute_Callback|S_Others_Others|-|S_Inquiry_Callback_N|S_OptOut_Callback_N|S_Dispute_Callback_N|-|Email_OptOut_IVR|-|S_Email_OptOut_IVR|S_Email_OptOut_IVR_2|-|dummy

return

^F1:: Gui, Show, x400 y180, Actions

Action:

If ((A_GuiEvent = "DoubleClick") || (Trigger_Action))

    Gui, Submit

{

If (Choise = "Inquiry_Callback")

    {

        do this, do that

    }

If (Choise = "OptOut_UnSub")

    {

        do this, do that

    }

If (Choise = "OptOut_Callback")

    {

        do this, do that

    }

If (Choise = "Dispute_Callback")

    {

        do this, do that

    }

If (Choise = "Others_Others")

    {

        do this, do that

    }

If (Choise = "S_Inquiry_Callback")

    {

        do this, do that

    }

If (Choise = "S_OptOut_Unsub")

    {

        do this, do that

    }

If (Choise = "S_OptOut_Callback")

    {

        do this, do that

    }

If (Choise = "S_Dispute_Callback")

    {

        do this, do that

    }

and so on...

If (Choise = "dummy")

        MsgBox, Reserved for Additional Customer

}

return

#If WinActive("Actions ahk_class AutoHotkeyGUI")

    Enter::

        Trigger_Action := true

        GoSub, Action

        Trigger_Action := false

    return

#If

GuiEscape:

Gui, cancel

GuiClose: 

Gui, cancel   

Return

Надеюсь, ты понимаешь, о чем я.

1 ответ1

0

Попробуйте что-то вроде этого:

#NoEnv
#SingleInstance Force
DetectHiddenWindows, On
SetTitleMatchMode, 2

Gui, Add, ListBox, gAction vChoise w190 h440 c66ff00, Inquiry_Callback||OptOut_UnSub|OptOut_Callback|dummy
return

^F1:: Gui, Show, x400 y180, Actions

Action:
If ((A_GuiEvent = "DoubleClick") || (Trigger_Action))
{
    WinClose, _Actions.ahk - AutoHotkey v ahk_class AutoHotkey
    Gui, Submit, NoHide
    If (Choise = "dummy")
       MsgBox, Reserved for Additional Customer
    else
    {
        IfNotExist, %A_ScriptDir%\%Choise%_Actions.ahk
           GoSub, Create_Choise_Script
        Run, %A_ScriptDir%\%Choise%_Actions.ahk
    }
}
return

Create_Choise_Script:
FileAppend,
(
#NoEnv
#SingleInstance Force

; Gui, -Caption
Gui, Add, ListBox, gCustomerAction vChoise w500 h50, customer1||customer2|customer3
WinGetPos, X, Y, Width,, Actions ahk_class AutoHotkeyGUI
Xn := (X+Width)
Gui, Show, x`%Xn`% y`%Y`%, %Choise%_Actions
return

CustomerAction:
If ((A_GuiEvent = "DoubleClick") || (Trigger_CustomerAction))
{
    WinClose, Actions ahk_class AutoHotkeyGUI  ; after pressing the final choice (the Customer), the ListBox will CLOSE
    Gui, Submit 
    If (Choise = "customer1")
       MsgBox, customer1
    If (Choise = "customer2")
       MsgBox, customer2
    If (Choise = "customer3")
       MsgBox, customer3
     ExitApp
}
return


#If WinActive("%Choise%_Actions ahk_class AutoHotkeyGUI")

    Enter::
        Trigger_CustomerAction := true
        GoSub, CustomerAction
        Trigger_CustomerAction := false
    return

     Left::   ;  go back
         WinActivate, Actions ahk_class AutoHotkeyGUI
         ExitApp
     return

#If

GuiEscape:
GuiClose:
    ExitApp

), %A_ScriptDir%\%Choise%_Actions.ahk
Return


#If WinActive("Actions ahk_class AutoHotkeyGUI")

    Enter::
    Right::
        Trigger_Action := true
        GoSub, Action
        Trigger_Action := false
    return

#If

GuiEscape:
GuiClose: 
    Gui, cancel
Return

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .