【已解决】删除下拉列表
本帖最后由 anythinging 于 2024-5-18 18:42 编辑请教各位朋友,如何实现在ComboBox下拉列表中删除某行数据?
了解可在下拉列表中添加图片,不知通过检测图片点击是否能实现?或者还有更简单的方法?
如图qq,点右边的x可以删除。
本帖最后由 anythinging 于 2024-5-18 09:10 编辑
目的是想通过鼠标删除列表内容,右键删除也行(不知如何触发)
感谢A版指点!弄了1天时间解决了。
加载、保存、更新全是坑。
解决方案:
使用热键调用,_GUICtrlComboBox_DeleteString解决。 anythinging 发表于 2024-5-18 18:45
感谢A版指点!弄了1天时间解决了。
加载、保存、更新全是坑。
解决方案:
我还以为你不要热键的方法 _ _|| afan 发表于 2024-5-18 18:47
我还以为你不要热键的方法 _ _||
感谢指点,除了热键,其它真不会啊 anythinging 发表于 2024-5-18 21:05
感谢指点,除了热键,其它真不会啊
只是习惯了用热键删除条目,觉得很方便。如果你想用右键删除也很简单啊,处理窗口 -9 消息就是~ afan 发表于 2024-5-18 21:37
只是习惯了用热键删除条目,觉得很方便。如果你想用右键删除也很简单啊,处理窗口 -9 消息就是~ ...
窗口这个实在不会弄了,还请帮完善下
#include <GuiComboBoxEx.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Global $g_hCombo
Global $delnum
HotKeySet("{F9}","_DelCombo")
Global $hGUI
$hGUI = GUICreate("创建 ComboBoxEx", 400, 300)
GUISetOnEvent(-3,"_exit")
$g_hCombo = _GUICtrlComboBox_Create($hGUI, "", 2, 2, 194, 168)
For $x = 0 To 18
_GUICtrlComboBox_InsertString($g_hCombo,'text'&$x)
Next
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
Sleep(100)
WEnd
Func _DelCombo()
$i = _GUICtrlComboBox_GetCurSel($g_hCombo)
_GUICtrlComboBox_DeleteString($g_hCombo,$i)
EndFunc
Func _exit()
Exit
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg, $wParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $tInfo
$tNMHDR = DllStructCreate($tagNMHDR, $lParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $g_hCombo
Switch $iCode
Case -9
ConsoleWrite('-99999'&@CR&@CR)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
anythinging 发表于 2024-5-19 08:40
窗口这个实在不会弄了,还请帮完善下
#include
#include
加一行就行了
...
GUISetOnEvent(-3,"_exit")
GUISetOnEvent(-9,"_DelCombo")
... afan 发表于 2024-5-19 10:37
加一行就行了
...
GUISetOnEvent(-3,"_exit")
居然如此简单高效,高实在是高!
页:
[1]