anythinging 发表于 2024-5-18 09:02:45

【已解决】删除下拉列表

本帖最后由 anythinging 于 2024-5-18 18:42 编辑

请教各位朋友,如何实现在ComboBox下拉列表中删除某行数据?
了解可在下拉列表中添加图片,不知通过检测图片点击是否能实现?或者还有更简单的方法?

如图qq,点右边的x可以删除。


anythinging 发表于 2024-5-18 09:07:19

本帖最后由 anythinging 于 2024-5-18 09:10 编辑

目的是想通过鼠标删除列表内容,右键删除也行(不知如何触发)



anythinging 发表于 2024-5-18 18:45:16

感谢A版指点!弄了1天时间解决了。
加载、保存、更新全是坑。
解决方案:
使用热键调用,_GUICtrlComboBox_DeleteString解决。

afan 发表于 2024-5-18 18:47:58

anythinging 发表于 2024-5-18 18:45
感谢A版指点!弄了1天时间解决了。
加载、保存、更新全是坑。
解决方案:


我还以为你不要热键的方法 _ _||

anythinging 发表于 2024-5-18 21:05:00

afan 发表于 2024-5-18 18:47
我还以为你不要热键的方法 _ _||

感谢指点,除了热键,其它真不会啊

afan 发表于 2024-5-18 21:37:25

anythinging 发表于 2024-5-18 21:05
感谢指点,除了热键,其它真不会啊

只是习惯了用热键删除条目,觉得很方便。如果你想用右键删除也很简单啊,处理窗口 -9 消息就是~

anythinging 发表于 2024-5-19 08:40:22

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

afan 发表于 2024-5-19 10:37:45

anythinging 发表于 2024-5-19 08:40
窗口这个实在不会弄了,还请帮完善下
#include
#include


加一行就行了
...
GUISetOnEvent(-3,"_exit")
GUISetOnEvent(-9,"_DelCombo")
...

anythinging 发表于 2024-5-19 14:34:50

afan 发表于 2024-5-19 10:37
加一行就行了
...
GUISetOnEvent(-3,"_exit")


居然如此简单高效,高实在是高!
页: [1]
查看完整版本: 【已解决】删除下拉列表