- Сообщения
- 8,671
- Репутация
- 2,481
Пример:
Всё дело в стиле $LVS_SORTASCENDING, если его не использовать, то проблем нет.
В коде выше, текст пунктов меняется местами, после чего начинаются проблемы...
Если вместо True поставить False в вызове _GUICtrlListView_FindText (частичный поиск), то возвращает правильный индекс, также если использовать строку с _GUICtrlListView_FindInText, то нет проблем.
Мне нужен поиск строго по указанному названию, и строго в первой колонке.
Ищу как решение проблеме, так и объяснение, почему так происходит и баг ли это вообще?
Код:
#include <GUIConstantsEx.au3>
#include <GUIListView.au3>
$hGUI = GUICreate('')
$iListView = GUICtrlCreateListView('Col', 20, 20, 260, 250, BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_SORTASCENDING))
GUICtrlCreateListViewItem('Item 1', $iListView)
GUICtrlCreateListViewItem('Item 2', $iListView)
GUISetState(@SW_SHOW, $hGUI)
_GUICtrlListView_SetItemText($iListView, 1, 'Item 1')
_GUICtrlListView_SetItemText($iListView, 0, 'Item 2')
$iIndex = _GUICtrlListView_FindText($iListView, 'Item 1', -1, False) ;, True)
;~ $iIndex = _GUICtrlListView_FindInText($iListView, 'Item 1')
MsgBox(64, 'Title', $iIndex)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Всё дело в стиле $LVS_SORTASCENDING, если его не использовать, то проблем нет.
В коде выше, текст пунктов меняется местами, после чего начинаются проблемы...
Если вместо True поставить False в вызове _GUICtrlListView_FindText (частичный поиск), то возвращает правильный индекс, также если использовать строку с _GUICtrlListView_FindInText, то нет проблем.
Мне нужен поиск строго по указанному названию, и строго в первой колонке.
Ищу как решение проблеме, так и объяснение, почему так происходит и баг ли это вообще?