- Offizieller Beitrag
Hallo.
Ich hab gerade eine Art Hirnblockade . Wie lege ich die Reihenfolge fest, in dem die Controls nach drücken der Tab Taste selektiert werden .
Hallo.
Ich hab gerade eine Art Hirnblockade . Wie lege ich die Reihenfolge fest, in dem die Controls nach drücken der Tab Taste selektiert werden .
Hi!
So wie sie im Code stehen, wenn mich nicht alles täuscht.
Mit Koda kann man die Tabreihenfolge soweit ich mich erinnere anpassen (Zeilen umstellen).
peethebee
Uuups, da kann ich ja basteln wie ein Wilder . Ich habe eine Gui mit 25 Childs und über 900 Controls . Na Mahlzeit .
Ich dachte es gibt irgendeine Func womit man das festlegen kann .
Danke für deine Antwort .
Edit : Hab jetzt schon mal rausbekommen wie die Controls in den Childs überhaupt auf die Tab-Taste reagieren . Dazu gibt´s den EX_STYLE $WS_EX_CONTROLPARENT.
Nur so'ne Idee: Kann man nicht einfach die Tabtaste als Hotkey festlegen und dann in der Funktion die Controls anhand einer Liste (Array) mit ControlFocus durchgehen?
Habe das auch noch nicht gemacht, aber theoretisch müsste das doch gehen, oder?
Des wäre auch eine Idee. Am besten die ControlID´s in ein Array und dann mit ControlFocus arbeiten . Oder gleich den Handle des Controls in das Array und dann mit _WinApi_SetFocus arbeiten . Könnte gehen . Danke Oscar .
stimmt, aber dann guisetaccelerators verwenden. Dann musst du nicht auf das aktive Fenster achten. (die Funktion gilt immer nur für 1 AutoIt-Fenster)
Und wie ist das dann wenn ich eine Gui mit 25 Childfenstern habe. Funktioniert dann GuiSetAccelerators auch richtig ?
ausprobieren (Fürs Haptfenster festlegen) Wenn es nicht geht, eben doch hotkeyset. (sind ja nur 2-3 Zeilen codeunterschied denke ich
Hast du auch wieder Recht . Probieren geht über stuckadieren Dank dir .
Edit @progandy woher hast du eigentlich die Informationen zu $WS_EX_CONTROLPARENT her ? Kann den Style nirgendwo in der Hilfe finden. Habe den nur durch einen Beitrag von dir im Englischen Forum gefunden .
Das mit der Reihenfolge klappt bei mir ganz gut habe aber das Problem das die 3 Llistboxen nur zueinander auf Tab reagieren
Also Tabdurchlauf alle Buttons in fast passender Reihenfolge zum Schluss die 3 Listboxen dann Tabreiter.
Die 3 Listboxen werden zum Schluss in umgekehrter Reihenfolge durchgegangen.
Was muss ich tun damit ich beim TabDruck aus der listbox ein Button erreicht wird und nicht die nächste Listbox.
Reihenfolge habe ich alles mögliche durch, liegt es daran das die 3 Listboxen in einen Array zusammen gefasst sind .
$Tab1 = GUICtrlCreateTab(0, 0, 985, 25)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$TabSheet1 = GUICtrlCreateTabItem("Auswählbare und existierende Datenquellen")
GUICtrlCreateGroup("",16,380,465,70)
GUICtrlCreateLabel("Suchbereich festlegen: ", 35, 395, -1, 30)
$Button_Refresh_Server = GUICtrlCreateButton("#", 153, 395, 17, 17)
$Combo_DB_Range = GUICtrlCreateCombo("",30,415,140,25, $CBS_DROPDOWNLIST)
GUICtrlSetData($Combo_DB_Range,$DB_Server_Choice,$DB_Server_Default)
GUICtrlCreateLabel("Bildungsregeln für DSN ", 185, 395, -1, 30)
$Button_Refresh_DSN = GUICtrlCreateButton("#", 323, 395, 17, 17)
$Combo_DSN_Name = GUICtrlCreateCombo("",180,415,160,25)
GUICtrlSetData($Combo_DSN_Name,$DSN_Name_Choice,$DSN_Name_Default)
GUICtrlCreateLabel("Datenbank Filter: ", 355, 395, -1, 30)
$Button_Refresh_DB = GUICtrlCreateButton("#", 453, 395, 17, 17)
$Combo_DB_Filter = GUICtrlCreateCombo("",350,415,120,25)
GUICtrlSetData($Combo_DB_Filter,$DB_Filter_Choice,$DB_Filter_Default)
GUICtrlCreateLabel("Konfigurierbare MSSQL-Datenquellen", 16, 40)
$ListView_Label = "DSN-Name|Datenbankserver|Datenbankname|DB-Collation"
$ListView_DSN_DB = GUICtrlCreateListView($ListView_Label, 16, 56, 465, 321,$LVS_REPORT)
$hListView_DSN_DB = GUICtrlGetHandle($ListView_DSN_DB)
_Resize_Collum($hListView_DSN_DB)
$Button_SelectAll = GUICtrlCreateButton("Alles markieren?", 370, 32, 113, 17, 0)
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateGroup("",520,380,465,70)
$Button_Import_Tab1 = GUICtrlCreateButton("GO", 540, 400,35,35)
GUICtrlCreateGroup("",595,380,390,70)
$Radio_HKCU_Reg = GUICtrlCreateRadio('"Benutzer-Datenquellen erzeugen."',620,390,-1,30)
$Radio_HKLM_Reg = GUICtrlCreateRadio('"System-Datenquellen erzeugen."',620,415,-1,30)
If IniRead($Script_Dir & "odbc-generator.ini","Konfiguration","Reg-Ziel","") = "HKLM" And $Reg_Writeable = "yes" Then
GUICtrlSetState($Radio_HKLM_Reg,$GUI_CHECKED)
Else
GUICtrlSetState($Radio_HKCU_Reg,$GUI_CHECKED)
EndIf
If $Reg_Writeable = "no" Then GUICtrlSetState($Radio_HKLM_Reg,$GUI_DISABLE)
$Check_Backup = GUICtrlCreateCheckbox("Backup erzeugen",820,389,-1,30)
If IniRead($Script_Dir & "odbc-generator.ini","Konfiguration","Backup","") = 1 Then GUICtrlSetState(-1,$GUI_CHECKED)
$Check_Allow = GUICtrlCreateCheckbox("Datenquellen überschreiben?",820,415,-1,30)
If IniRead($Script_Dir & "odbc-generator.ini","Konfiguration","DSN-überschreiben","") = 1 Then GUICtrlSetState(-1,$GUI_CHECKED)
$Button_Save_Tab1 = GUICtrlCreateButton("...", 955, 395,20,20)
GUICtrlCreateLabel("User DSN:", 520, 215, 55, 17)
$ListView_User = GUICtrlCreateListView("€|" & $ListView_Label, 520, 232, 465, 145,$LVS_REPORT)
$hListView_User = GUICtrlGetHandle($ListView_User)
$Check_User = GUICtrlCreateCheckbox("", 840, 208, 17, 17)
$Button_User = GUICtrlCreateButton("markierte löschen?", 872, 208, 113, 17, 0)
_Resize_Collum($hListView_User)
$Check_System = GUICtrlCreateCheckbox("", 840, 32, 17, 17)
$Button_System = GUICtrlCreateButton("markierte löschen?", 872, 32, 113, 17, 0)
GUICtrlCreateLabel("System DSN:", 520, 40, 67, 17)
$ListView_System = GUICtrlCreateListView("€|" & $ListView_Label, 520, 56, 465, 145,$LVS_REPORT)
$hListView_System = GUICtrlGetHandle($ListView_System)
_Resize_Collum($hListView_System)
Local $aHWnd[3] = [$hListView_DSN_DB,$hListView_System,$hListView_User]
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_Formatting_Startup($Form1_1, $aHWnd)
_Fill_System_DSN_Listbox("HKEY_LOCAL_MACHINE",$ListView_System)
_Fill_System_DSN_Listbox("HKEY_CURRENT_USER",$ListView_User)
User & System DSN Listview habe ich einmal getauscht und der Ablauf ist dann anders aber nur innerhalb der 3 Listviews ?
Ich würde gerne bei verlassen der Listbox die Checkbox erreichen.... bzw. bei dem einen "Alles markieren"