找回密码
 加入
搜索
楼主: 298311657

[原创] ListView虚表 复选框 原地编辑例子 By_Crossdoor(2015-11-03更新)

 火... [复制链接]
发表于 2016-1-30 14:35:55 | 显示全部楼层
来看看,input 能不能遮盖掉原来的
hansans 发表于 2016-1-30 14:21

运行了一下,解决 我的问题了:我原来用的是在上面加一个input 来遮盖下层的,看起来有瑕疵.
发表于 2016-1-31 16:28:55 | 显示全部楼层
谢谢楼主分享。
发表于 2016-2-17 11:55:45 | 显示全部楼层
正是我需要的
发表于 2016-3-5 11:26:44 | 显示全部楼层
看看,学习学习
发表于 2016-3-24 21:48:12 | 显示全部楼层
这个必须偷走
发表于 2016-3-24 22:14:46 | 显示全部楼层
谢谢分享,学习了
发表于 2016-3-27 02:39:14 | 显示全部楼层
回复 1# 298311657

老大  能否請教一下  我 已經 可以在原地編輯的時候

使用 ENTER 輸入資料

是使用您的 方法


Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        #forceref $hWnd, $iMsg, $iwParam, $ilParam
        Local $hWndFrom, $iIDFrom, $iCode
        $hWndFrom = $ilParam
        $iCode = _WinAPI_HiWord($iwParam);獲取高位
        $iIDFrom =_WinAPI_LoWord($iwParam);獲取低位

        Switch $hWndFrom
                Case $hEdit
                        Switch $iCode
                                Case $EN_KILLFOCUS

                                Case $EN_UPDATE

                                Case $EN_CHANGE

                                Case $EN_SETFOCUS

                        EndSwitch

                Case $hEnter;虛擬控制項消息觸發  收到回車消息才觸發
                        ConsoleWrite($hEnter)
                        If IsHWnd($hEdit) AND $iwParam=1  Then
                                Select
                                        Case $hVListView = $VListView1
                                                _LV_EndItemEdit($hVListView, $aShowdata1)
                                        Case $hVListView = $VListView2
                                                _LV_EndItemEdit($hVListView, $aShowdata2)
                                        Case $hVListView = $VListView3
                                                _LV_EndItemEdit($hVListView, $aShowdata3)
                                        Case $hVListView = $VListView4
                                                _LV_EndItemEdit($hVListView, $aShowdata4)
                                        Case $hVListView = $VListView5
                                                _LV_EndItemEdit($hVListView, $aShowdata5)
                                        Case $hVListView = $VListView6
                                                _LV_EndItemEdit($hVListView, $aShowdata6)
                                        Case $hVListView = $VListView7
                                                _LV_EndItemEdit($hVListView, $aShowdata7)
                                        Case $hVListView = $VListView8
                                                _LV_EndItemEdit($hVListView, $aShowdata8)
                                        Case $hVListView = $VListView9
                                                _LV_EndItemEdit($hVListView, $aShowdata9)
                                        Case $hVListView = $VListView10
                                                _LV_EndItemEdit($hVListView, $aShowdata10)
                                        Case Else

                                EndSelect
                        EndIf

                        If IsHWnd($hEdit) AND $iwParam=2 Then
                                _LV_DestroyEdit()
                        EndIf
                        
                Case $hUP;虛擬控制項消息觸發  收到回車消息才觸發
                        ConsoleWrite("A")

                Case $hDown;虛擬控制項消息觸發  收到回車消息才觸發
                        ConsoleWrite("B")


        EndSwitch
        Return $GUI_RUNDEFMSG
EndFunc   ;==>_WM_COMMAND


我在一開始 使用
, $aAccelKeys[3][2] = [["{ENTER}", $hEnter],["{UP}",$hEnter],["{DOWN}",$hEnter]]

想要 讓 ENTER  上  下  都可以存檔 但是 無法  這是為何呢??  INPUT 的關係嗎 我使用的是 INPUT 控件
 楼主| 发表于 2016-3-27 16:33:10 | 显示全部楼层
回复 97# kk_lee69


没看懂你问什么东西。
发表于 2016-3-27 23:04:50 | 显示全部楼层
本帖最后由 kk_lee69 于 2016-3-27 23:16 编辑
回复  kk_lee69

你的这个问题,可以试试这份代码
298311657 发表于 2015-11-1 22:27


問題一   在您的 62樓範例裡面  第276 行 我按 ENTER 會觸發這裡   我想改成  按往上   或者 按往下  或者  ENTER 都會觸發這裡???

問題二  在您的62樓範例裡面   第 271行  原本 更早之前的範例  編輯框結束的時候 是放在這邊處理的
           以下的幾個情況會觸發這邊
         1. 在編輯框的時候  把主程式縮到最小
         2. 在編輯框的時候 點擊  主表單的其他部分 (非 LISTVIEW 的部分  譬如其他位置的搜尋鍵 旁邊)  
         3.  左點擊 LISTVIEW 的其他部分
         4.   移動 LISTVIEW 的捲軸

因為這些動作 都會導致 EDIT 框 失去焦點

      但是  我希望  1 跟 2  跟  4 的情況  直接放棄 不接受編輯的內容
      而 在 2 的情況 就接受.....

     但是 在我 把判斷 放到這邊的時候  會出現問題  因為 失去焦點的的那個事件  會比 LISTVIEW 的 左單擊 事件 更早發生 因此 無法存檔 編輯框的內容

      有判斷的方法 可以區分這四種情況嗎??
发表于 2016-3-28 15:53:30 | 显示全部楼层
牛逼,看看源码
发表于 2016-4-3 12:06:11 | 显示全部楼层
以前的版本看过,这个再看下.
发表于 2016-4-16 19:43:45 | 显示全部楼层
好东西,学习学习,谢谢分享
发表于 2016-4-19 21:27:16 | 显示全部楼层
谢谢分享,已购买。阅读中
发表于 2016-4-21 18:54:19 | 显示全部楼层
回复 1# 298311657


    这个效果不错。
发表于 2016-4-22 00:59:42 | 显示全部楼层
数组大了确实曼
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 06:47 , Processed in 0.072191 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表