Что нового

[Элементы GUI] Как пользоваться комбобоксом и чекбоксом

kemp

Новичок
Сообщения
5
Репутация
0
Здравствуйте, Уважаемые!

Вопросы следующие
1. как заставить авто айти записывать значение строки, которую я выбираю в комбобоксе, в переменную?(в данном случае переменная х)
2. в комбобокс можно вписывать текст(вместо 1 2 3), как это убрать?
3. как сделать чекбокс2 заблокированным(таким серым, неактивным), до нажатия чекбокса unlock?

Заранее спасибо!!

Код:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 330, 133, 388, 324)
$Combo1 = GUICtrlCreateCombo("1", 48, 16, 161, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "2|3", "1")
$Button1 = GUICtrlCreateButton("Start", 16, 72, 249, 57)
$Checkbox1 = GUICtrlCreateCheckbox("unlock", 24, 40, 73, 25)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 136, 40, 89, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	Local $x
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			MsgBox(0,'', $x)
	EndSwitch
WEnd
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
Не ленись читать справку


kemp [?]
1. как заставить авто айти записывать значение строки, которую я выбираю в комбобоксе, в переменную?(в данном случае переменная х)
Код:
$x=GuiCtrlRead($Combo1)



2. в комбобокс можно вписывать текст(вместо 1 2 3)
Код:
GUICtrlSetData($Combo1, "Строка|Ещё строка|И ещё")

Код:
GUICtrlSetData($Combo1, "|")

Если убрать старое и сделать новое содержимое списка:
Код:
GUICtrlSetData($Combo1, "|Новая строка|И ещё новая")



3. как сделать чекбокс2 заблокированным(таким серым, неактивным), до нажатия чекбокса unlock?
После $Checkbox2=....
Код:
GuiCtrlSetState($Checkbox2,$GUI_DISABLE)

А после Switch $nMsg
Код:
Case $Checkbox1
     GuiCtrlSetState($Checkbox2,$GUI_ENABLE)
 

agikon

Знающий
Сообщения
789
Репутация
17
не повредит посмотреть мои темы, я это всё проходил.
 

Dm666

Осваивающий
Сообщения
221
Репутация
48
kemp [?]
2. в комбобокс можно вписывать текст(вместо 1 2 3), как это убрать?

$CBS_DROPDOWNLIST вместо $CBS_DROPDOWN, мне кажется это имелось ввиду.
А в остальном да, BIOS прав на все 100, особенно про справку
 
Автор
K

kemp

Новичок
Сообщения
5
Репутация
0
Всем большое спасибо!! :beer:

теперь разобрался)насчет второго вопроса, действительно , имелось ввиду $CBS_DROPDOWNLIST вместо $CBS_DROPDOWN.
 

pboy

Новичок
Сообщения
18
Репутация
0
Здравствуйте! У меня тоже пара новичковых вопросов по комбобоксу. :smile:

Первый - как изменить строку в поле ввода на произвольное значение, при этом не изменяя (и не добавляя!) значений в комбо-списке?

И второй - как прочитать все имеющиеся значения из комбо-списка?
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
pboy
Пример:

Код:
; НАЧАЛО

 #Include <Array.au3>
 #Include <GuiComboBox.au3>

 $GUI=GUICreate('Комбобокс')
 $COMBO=GUICtrlCreateCombo('',10,10)
 $ADD=GUICtrlCreateButton('Добавить',10,40)
 $READ=GUICtrlCreateButton('Считать',10,70)
 $LIST='Первый пункт|Второй пункт|Третий пункт'
 GUICtrlSetData($COMBO,$LIST)
 GUISetState()

 While True
  Switch GUIGetMsg()
   Case -3
    ExitLoop
   Case $ADD
    ControlSetText($GUI,'',$COMBO,'Произвольный текст')
   Case $READ
    $A=_GUICtrlComboBox_GetListArray($COMBO)
    _ArrayDisplay($A)
  EndSwitch
 WEnd

; КОНЕЦ
 
Верх