【已解决】ListView焦点及复制删除问题,相反方向无效,求助!
本帖最后由 touch_xu 于 2014-9-1 20:44 编辑1.以下代码,左内容可以移到右边,右边不能移到左边(右边为内容不清除),为什么,没有理由啊!
2.如何让左侧每一行默认选中,即使删除了,下一行仍然处于选中状态,找到了相关函数都无效,谢谢!
#include <Access.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <GUIListView.au3>
#include <Array.au3>
#include <GuiEdit.au3>
Opt("GUIOnEventMode", 1)
$FrmConfirm = GUICreate("Confirm", 505, 385, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI")
$LstPass = GUICtrlCreateListView("NO|LOC| Symptom ", 5, 60, 220, 270)
_GUICtrlListView_SetItemSelected($LstPass,1,True,True)
GUICtrlCreateListViewItem("01|C1|ABC", $LstPass)
GUICtrlCreateListViewItem("03|C3|FEG", $LstPass)
GUICtrlCreateListViewItem("04|D3|DEF", $LstPass)
$LstFail = GUICtrlCreateListView("NO|LOC| Symptom ", 280, 60, 220, 270)
$BtnConfirm = GUICtrlCreateButton("Finish", 150, 340, 200, 32)
GUICtrlSetOnEvent(-1, "_GUI")
$Right = GUICtrlCreateButton("->", 230, 140, 46, 50)
GUICtrlSetOnEvent(-1, "_GUI")
$Left = GUICtrlCreateButton("<-", 230, 220, 46, 50)
GUICtrlSetOnEvent(-1, "_GUI")
GUISetState(@SW_SHOW, $FrmConfirm)
While 1
Sleep(10)
WEnd
Func _GUI()
Switch @GUI_CtrlId
Case $BtnConfirm, $GUI_EVENT_CLOSE
Exit
Case $Right
_GUICtrlListView_CopyItems($LstPass, $LstFail, True)
Case $Left
_GUICtrlListView_CopyItems($LstFail, $LstPass, True)
EndSwitch
EndFunc ;==>_GUI
给你一半代码 剩下的你看懂了肯定能写出来的
Case $Right
$nCnt = _GUICtrlListView_GetItemCount($LstPass)
For $i = 0 To $nCnt - 1
If _GUICtrlListView_GetItemState($LstPass, $i, $LVIS_SELECTED ) Then
$nItem = $i
ExitLoop
EndIf
Next
_GUICtrlListView_CopyItems($LstPass, $LstFail, True)
$nCnt -= 1
If $nCnt>0 Then
If $nItem<$nCnt Then
_GUICtrlListView_SetItemSelected($LstPass, $nItem, True, True)
Else
_GUICtrlListView_SetItemSelected($LstPass, $nCnt-1, True, True)
EndIf
EndIf 回复 1# touch_xu
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Global $FrmConfirm, $LstPass, $LstFail, $BtnConfirm, $Right, $Left, $Button, $nItem, $nItem1
_GUIa()
While 1
Sleep(10)
WEnd
Func _GUIa()
Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_SUBITEMIMAGES)
$FrmConfirm = GUICreate("Confirm", 505, 385, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI")
$LstPass = GUICtrlGetHandle(GUICtrlCreateListView("", 5, 60, 220, 270, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE))
_GUICtrlListView_SetExtendedListViewStyle($LstPass, $exStyles)
$LstFail = GUICtrlGetHandle(GUICtrlCreateListView("", 280, 60, 220, 270, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE))
_GUICtrlListView_SetExtendedListViewStyle($LstFail, $exStyles)
$BtnConfirm = GUICtrlCreateButton("Finish", 150, 340, 200, 32)
GUICtrlSetOnEvent(-1, "_GUI")
$Right = GUICtrlCreateButton("->", 230, 140, 46, 50)
GUICtrlSetOnEvent(-1, "_GUI")
$Left = GUICtrlCreateButton("<-", 230, 220, 46, 50)
GUICtrlSetOnEvent(-1, "_GUI")
GUISetState(@SW_SHOW, $FrmConfirm)
; 添加列
_GUICtrlListView_AddColumn($LstPass, "NO", 70)
_GUICtrlListView_AddColumn($LstPass, "LOC", 70)
_GUICtrlListView_AddColumn($LstPass, "Symptom", 70)
; 添加列
_GUICtrlListView_AddColumn($LstFail, "NO", 70)
_GUICtrlListView_AddColumn($LstFail, "LOC", 70)
_GUICtrlListView_AddColumn($LstFail, "Symptom", 70)
; 添加项目
_GUICtrlListView_AddItem($LstPass, "01", 0)
_GUICtrlListView_AddSubItem($LstPass, 0, "Cl", 1, 1)
_GUICtrlListView_AddSubItem($LstPass, 0, "ABC", 2, 2)
_GUICtrlListView_AddItem($LstPass, "03", 1)
_GUICtrlListView_AddSubItem($LstPass, 1, "C3", 1, 2)
_GUICtrlListView_AddSubItem($LstPass, 1, "FEG", 2, 2)
_GUICtrlListView_AddItem($LstPass, "04", 2)
_GUICtrlListView_AddSubItem($LstPass, 2, "D3", 1, 2)
_GUICtrlListView_AddSubItem($LstPass, 2, "DEF", 2, 3)
EndFunc ;==>_GUIa
Func _GUI()
Switch @GUI_CtrlId
Case $BtnConfirm, $GUI_EVENT_CLOSE
Exit
Case $Right
_GUICtrlListView_CopyItems($LstPass, $LstFail, True)
Case $Left
_GUICtrlListView_CopyItems($LstFail, $LstPass, True)
EndSwitch
EndFunc ;==>_GUI 无需判断吧~直接设置就好吧Func _GUI()
Switch @GUI_CtrlId
Case $BtnConfirm, $GUI_EVENT_CLOSE
Exit
Case $Right
_GUICtrlListView_CopyItems($LstPass, $LstFail, True)
_GUICtrlListView_SetItemSelected($LstPass,0, True, True)
Case $Left
_GUICtrlListView_CopyItems($LstFail, $LstPass, True)
_GUICtrlListView_SetItemSelected($LstPass,0, True, True)
EndSwitch
EndFunc ;==>_GUI 给你一半代码 剩下的你看懂了肯定能写出来的
Case $Right
$nCnt = _GUICtrlListView_GetItemCount($LstP ...
veket_linux 发表于 2014-8-31 17:34 http://61.153.183.105/images/common/back.gif
左到右是没有问题的,一行就搞定 _GUICtrlListView_CopyItems($LstPass, $LstFail, True)
关键是右到左,谢谢! 给你一半代码 剩下的你看懂了肯定能写出来的
Case $Right
$nCnt = _GUICtrlListView_GetItemCount($LstP ...
veket_linux 发表于 2014-8-31 17:34 http://61.153.183.105/images/common/back.gif
左到右是没有问题的,一行就搞定 _GUICtrlListView_CopyItems($LstPass, $LstFail, True)
关键是右到左,谢谢! 给你一半代码 剩下的你看懂了肯定能写出来的
Case $Right
$nCnt = _GUICtrlListView_GetItemCount($LstP ...
veket_linux 发表于 2014-8-31 17:34 http://61.153.183.105/images/common/back.gif
左到右是没有问题的,一行就搞定 _GUICtrlListView_CopyItems($LstPass, $LstFail, True)
关键是右到左,谢谢! 回复 1# touch_xu
左到右是没有问题的,一行就搞定 _GUICtrlListView_CopyItems($LstPass, $LstFail, True)
关键是右到左,谢谢! 回复 1# touch_xu
左到右是没有问题的,一行就搞定 _GUICtrlListView_CopyItems($LstPass, $LstFail, True)
关键是右到左,谢谢! 回复 1# touch_xu
左到右是没有问题的,一行就搞定 _GUICtrlListView_CopyItems($LstPass, $LstFail, True)
关键是右到左,谢谢! 回复 1# touch_xu
左到右是没有问题的,一行就搞定 _GUICtrlListView_CopyItems($LstPass, $LstFail, True)
关键是右到左,谢谢! 回复 3# chzj589
感谢感谢,正解,再次感谢! 回复 4# haijie1223
感谢帮助,刚才测试过了不行,和我的代码一样,仍然感谢! 本帖最后由 touch_xu 于 2014-9-1 20:45 编辑
感谢大家,已经解决了,下面是我的最终代码,谢谢!#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Global $FrmConfirm, $LstPass, $LstFail, $BtnConfirm, $Right, $Left, $Button, $nItem, $nItem1
;Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES, $LVS_EX_SUBITEMIMAGES)
Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT,$LVS_EX_SUBITEMIMAGES)
$FrmConfirm = GUICreate("Confirm", 505, 385, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI")
$LstPass = GUICtrlGetHandle(GUICtrlCreateListView("", 5, 60, 220, 270, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE))
_GUICtrlListView_SetExtendedListViewStyle($LstPass, $exStyles)
$LstFail = GUICtrlGetHandle(GUICtrlCreateListView("", 280, 60, 220, 270, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE))
_GUICtrlListView_SetExtendedListViewStyle($LstFail, $exStyles)
$BtnConfirm = GUICtrlCreateButton("Finish", 150, 340, 200, 32)
GUICtrlSetOnEvent(-1, "_GUI")
$Right = GUICtrlCreateButton("->", 230, 140, 46, 50)
GUICtrlSetOnEvent(-1, "_GUI")
$Left = GUICtrlCreateButton("<-", 230, 220, 46, 50)
GUICtrlSetOnEvent(-1, "_GUI")
GUISetState(@SW_SHOW, $FrmConfirm)
; 添加列
_GUICtrlListView_AddColumn($LstPass, "NO", 40)
_GUICtrlListView_AddColumn($LstPass, "LOC", 40)
_GUICtrlListView_AddColumn($LstPass, "Symptom", 140)
; 添加列
_GUICtrlListView_AddColumn($LstFail, "NO", 40)
_GUICtrlListView_AddColumn($LstFail, "LOC", 40)
_GUICtrlListView_AddColumn($LstFail, "Symptom", 140)
; 添加项目
_GUICtrlListView_AddItem($LstPass, "01", 0)
_GUICtrlListView_AddSubItem($LstPass, 0, "Cl", 1, 1)
_GUICtrlListView_AddSubItem($LstPass, 0, "ABC", 2, 2)
_GUICtrlListView_AddItem($LstPass, "03", 1)
_GUICtrlListView_AddSubItem($LstPass, 1, "C3", 1, 2)
_GUICtrlListView_AddSubItem($LstPass, 1, "FEG", 2, 2)
_GUICtrlListView_AddItem($LstPass, "04", 2)
_GUICtrlListView_AddSubItem($LstPass, 2, "D3", 1, 2)
_GUICtrlListView_AddSubItem($LstPass, 2, "DEF", 2, 3)
_GUICtrlListView_SetItemSelected($LstPass, 0, True, True)
While 1
Sleep(10)
WEnd
Func _GUI()
Switch @GUI_CtrlId
Case $BtnConfirm, $GUI_EVENT_CLOSE
Exit
Case $Right
_GUICtrlListView_CopyItems($LstPass, $LstFail, True)
_GUICtrlListView_SetItemSelected($LstPass, 0, True, True)
Case $Left
_GUICtrlListView_CopyItems($LstFail, $LstPass, True)
_GUICtrlListView_SetItemSelected($LstPass, 0, True, True)
EndSwitch
EndFunc ;==>_GUI 回复 14# touch_xu
移动后,不能删除原项目, 明显是该UDF函数不支持GUICtrlCreateListViewItem建立的项目啊.
页:
[1]