找回密码
 加入
搜索
查看: 4105|回复: 7

[GUI管理] FileOpenDialog打开选择文件显示到GUICtrlCreateListview中[已解决]

  [复制链接]
发表于 2011-2-17 16:26:15 | 显示全部楼层 |阅读模式
本帖最后由 qupen3704957 于 2011-2-18 09:05 编辑

请教一下,关于将打开一个FileOpenDialog对话框,将选择的文件列表显示到GUICtrlCreateListview的界面列表框中如何实现?
希望效果:
D:\3.JPG

D:\1.JPG

D:\2.JPG

评分

参与人数 1金钱 +20 收起 理由
水木子 + 20 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2011-2-17 16:55:59 | 显示全部楼层
#include <GUIListView.au3>
Opt("GUIOnEventMode", 1)

GUICreate("", 400, 300)
GUISetOnEvent(-3, "_EventResponse")

$ListView1 = GUICtrlCreateListView("|", 5, 5, 390, 250)
_GUICtrlListView_SetColumnWidth($ListView1, 0, 350)
$Button1 = GUICtrlCreateButton("Button1", 312, 260, 75, 25)
GUICtrlSetOnEvent(-1, "_EventResponse")
GUISetState()

While 1
        Sleep(100)
WEnd

Func _EventResponse()
        Switch @GUI_CtrlId
                Case -3
                        Exit
                Case $Button1
                        $var = FileOpenDialog('', '', "图像文件 (*.jpg;*.bmp)", 1)

                        If Not @error Then
                                $var = StringReplace($var, "|", @CRLF)
                                GUICtrlCreateListViewItem($var, $ListView1)
                        EndIf
        EndSwitch
EndFunc   ;==>_EventResponse
 楼主| 发表于 2011-2-17 17:09:18 | 显示全部楼层
非常感谢水木高手的及时回答,但现在有个问题,运行以上程序现在多选的文件都显示在一行中,如何让多选的文件都分行显示出来?
 楼主| 发表于 2011-2-17 17:09:49 | 显示全部楼层
回复 2# 水木子

非常感谢水木高手的及时回答,但现在有个问题,运行以上程序现在多选的文件都显示在一行中,如何让多选的文件都分行显示出来?
发表于 2011-2-17 17:28:46 | 显示全部楼层
#include <GUIListView.au3>
Opt("GUIOnEventMode", 1)

GUICreate("", 400, 300)
GUISetOnEvent(-3, "_EventResponse")

$ListView1 = GUICtrlCreateListView("|", 5, 5, 390, 250)
_GUICtrlListView_SetColumnWidth($ListView1, 0, 350)
$Button1 = GUICtrlCreateButton("Button1", 312, 260, 75, 25)
GUICtrlSetOnEvent(-1, "_EventResponse")
GUISetState()

While 1
        Sleep(100)
WEnd

Func _EventResponse()
        Switch @GUI_CtrlId
                Case -3
                        Exit
                Case $Button1
                        $var = FileOpenDialog('', '', "图像文件 (*.jpg;*.bmp)", 1 + 4)

                        If Not @error Then
                                If StringInStr($var, '|') Then
                                        $a = StringSplit($var, '|')
                                        For $i = 2 To $a[0]
                                                GUICtrlCreateListViewItem($a[1] & '\' & $a[$i], $ListView1)
                                        Next
                                Else
                                        GUICtrlCreateListViewItem($var, $ListView1)
                                EndIf
                        EndIf
        EndSwitch
EndFunc   ;==>_EventResponse
 楼主| 发表于 2011-2-17 17:33:27 | 显示全部楼层
回复 5# 水木子


    高手啊!!!多谢水木了,上忍都是很厉害的!!!
发表于 2011-2-17 17:36:25 | 显示全部楼层
本帖最后由 水木子 于 2011-2-17 17:38 编辑

回复 6# qupen3704957

呵呵!你太逗了,我是S级叛逆忍者!

好啦!玩笑结束!如果问题已经解决了,就在标题后面加个[已解决]吧!

发表于 2011-11-16 11:07:51 | 显示全部楼层
高手啊!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-6 09:53 , Processed in 0.082268 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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