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

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

 火... [复制链接]
发表于 2015-10-14 11:18:08 | 显示全部楼层
看看啥内容
发表于 2015-10-14 13:13:03 | 显示全部楼层
非常感谢您的分享
发表于 2015-10-14 14:37:34 | 显示全部楼层
谢谢分享!
发表于 2015-10-14 16:33:31 | 显示全部楼层
谢谢分享,!!!!!
发表于 2015-10-14 20:58:29 | 显示全部楼层
谢谢分享!!
发表于 2015-10-14 21:12:58 | 显示全部楼层
这太有需要啦~~~
发表于 2015-10-15 08:53:47 | 显示全部楼层
确实需要这个功能,谢谢分享
发表于 2015-10-15 10:32:17 | 显示全部楼层
赞一下赞一下赞一下赞一下
发表于 2015-10-16 05:40:21 | 显示全部楼层
非常不错的实例,谢谢;额
发表于 2015-10-16 09:37:29 | 显示全部楼层
回复 1# 298311657
老大  等很久了~~~ 終於有解決的方案了

太感謝了!!  希望 多來論壇看看  發表一下  造福一下  我們呀
发表于 2015-10-16 10:40:44 | 显示全部楼层
楼主辛苦了!!!!!!!
发表于 2015-10-16 10:48:16 | 显示全部楼层
回复 1# 298311657

老大 可以微調 原地編輯框的細部位置嗎  測試過  怎麼調整都沒用

就是 會出現兩層 如圖  看起來就怪怪的  

看過其他的範例 似乎 沒使用到 _GUICtrlEdit_Create

是這個造成的嗎??  有其他的解決方案嗎??


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-10-16 15:32:33 | 显示全部楼层
谢谢分享啊!!!!
 楼主| 发表于 2015-10-16 20:12:05 | 显示全部楼层
回复 27# kk_lee69

在xp下是没有这个问题的。

在win7下出现这种问题可以参考下面的代码。

                                Case $NM_DBLCLK ; 双击
                                        $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
                                        $iIndex = DllStructGetData($tInfo, "Index")
                                        $iSub = DllStructGetData($tInfo, "SubItem")
                                        $x = DllStructGetData($tInfo, "X")
                                        If ($iIndex <> -1) And ($iSub >= 0) And ($x > 16) Then;点击的x>16才响应原地编辑
                                                $Item = $iIndex
                                                $SubItem = $iSub
                                                ;==========计算编辑框坐标
                                                Local $aRect = _GUICtrlListView_GetSubItemRect($hListView, $iIndex, $iSub)
                                                Local $iEdit_X = $aRect[0] + 4
                                                Local $iEdit_Y = $aRect[1] + 3
                                                Local $iEdit_Width = _GUICtrlListView_GetColumnWidth($hListView, $iSub) + 3
                                                Local $iEdit_Height = $aRect[3] - $aRect[1] + 3
                                                If $iSub = 0 Then
                                                        Local $i1 = 0, $i2 = 0
                                                        If (BitAND(_GUICtrlListView_GetExtendedListViewStyle($hListView), $LVS_EX_CHECKBOXES) = $LVS_EX_CHECKBOXES) Then $i1 = 18;判断是否有复选框
                                                        If _GUICtrlListView_GetImageList($hListView, 1) Then $i2 = 20;判断是否有分配图像列表到列表视图控件
                                                        $iEdit_X += ($i2 + $i1)
                                                        $iEdit_Width -= ($i2 + $i1)
                                                EndIf
                                                $hEdit = GUICtrlCreateInput($aShowdata[$iIndex][$iSub], $iEdit_X, $iEdit_Y, $iEdit_Width, $iEdit_Height, BitOR($WS_CHILD, $WS_VISIBLE, $ES_LEFT))
                                                GUICtrlSetFont($hEdit, 12)
                                                GUICtrlSetState($hEdit, $GUI_FOCUS)
                                                $hEdit = GUICtrlGetHandle($hEdit)
                                                Send("{RIGHT}") ;方向 →
;~                                                 _GUICtrlEdit_SetSel($hEdit, 0, -1) ;全选编辑框文字
                                                HotKeySet("{ENTER}", "_EndItemEdit");设置热键响应回车
                                        EndIf
发表于 2015-10-16 23:52:32 | 显示全部楼层
回复 1# 298311657


    看看学习下.  这方面资料需要学学. 数据库经常操作上万条数据显示. 比较影响体验.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-17 04:54 , Processed in 0.074516 second(s), 16 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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