VB 动态添加控件及磁盘、目录、文件控件

12 篇文章 1 订阅

VB 动态添加控件及磁盘、目录、文件控件

        '1.让您知道如何动态添加控件,并安排控件位置

        '2.Drive1 Dir1 与 File1 三个控件的互动关系

        '3.为何要使用appdisk与dirpath 这两个变量,因为这应该算是VB的一个臭虫(Bugs)

        'App.path与Dir1.path 在主目录下都会带\, 而其它次目录或子目录却不带\,

        '因此我们 "统一" 让它们都带 \, 如此便比较不容易产生路径上的错误.

'定义新添加控件

Private WithEvents Drive1 As DriveListBox

Private WithEvents Dir1 As DirListBox

Private WithEvents File1 As FileListBox

Private WithEvents Text1 As TextBox

        '*********** 定义 Dir1 的变量 dirpath为文字型态,并且为全局变量

        '*********** 定义 App.path 的变量 appdisk为文字型态,并且为全局变量

Dim appdisk$, dirpath$

 

Private Sub Form_Load()

    '*********** 窗体自动重画,如没加上此行,则窗体上显示的文字将随时被遮盖的控件抹除.

    Me.AutoRedraw = True

    Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2    '****** 窗体置中

    '*********************************动态添加控件

    Set Drive1 = Me.Controls.Add("VB.DriveListBox", "Drive1")

    Set Dir1 = Me.Controls.Add("VB.DirListBox", "Dir1")

    Set File1 = Me.Controls.Add("VB.fileListBox", "File1")

    Set Text1 = Me.Controls.Add("VB.textBox", "Text1")

    '************************* 新添加的控件为不可见,必需让它为True才可见

    Drive1.Visible = True

    Dir1.Visible = True

    File1.Visible = True

    Text1.Visible = True

    '*********************************** 安排控件位置

    Drive1.Move 100, 400, 2200

    Dir1.Move Drive1.Left, Drive1.Top + Drive1.Height, Drive1.Width, 2200

    Text1.Move Drive1.Left + Drive1.Width + 100, Drive1.Top, 2200

    File1.Move Text1.Left, Dir1.Top, Text1.Width, Dir1.Height + 100

    '************************** 初始驱动路径的设置

    Dir1.Path = App.Path

    Drive1.Drive = Left(Dir1.Path, 1)

    '********************** 过滤条件与隐藏档的选择

    File1.Pattern = "*.mp3;*.mid;*.rm"      '每一个扩展名中间以分号;隔开

    '****************** 为True时能将隐藏的文件也能显示出来,False就不显示

    File1.System = True

    File1.Hidden = True

    '*************** 定义文本匡的初始扩展名过滤条件与文件列表匡的过滤条件相同

    Text1.Text = File1.Pattern

    '******************************** 定义 dirpath 的变量

    dirpath = IIf(Right(Dir1.Path, 1) = "\", Dir1.Path, Dir1.Path & "\")

    '******************* 定义本地相对路径的变量 appdisk

    appdisk = Trim(App.Path)

    If Right(appdisk, 1) <> "\" Then appdisk = appdisk & "\"

End Sub

 

Private Sub Drive1_Change()

    '***************************** 当盘符改变时,目录夹的路径随着同步更新

    Dir1.Path = Drive1.Drive

    '******************************** 定义 dirpath 的变量

    dirpath = IIf(Right(Dir1.Path, 1) = "\", Dir1.Path, Dir1.Path & "\")

End Sub

 

Private Sub Dir1_Change()

    '********************** 当目录夹的路径改变时,文件列表匡的路径也要随着同步更新

    File1.Path = Dir1.Path

    dirpath = IIf(Right(Dir1.Path, 1) = "\", Dir1.Path, Dir1.Path & "\")

End Sub

 

Private Sub File1_Click()

    '******** 清除窗体画面

    Me.Cls

    '********* 当点击选中文件列表匡的某一个文件时,将这个文件的完全绝对路径显示出来

    Me.Print dirpath & File1.FileName

End Sub

 

Private Sub Text1_Change()

    '************** 当文本匡内容改变时,文件列表匡的扩展名过滤条件也要随着同步更新

    File1.Pattern = Text1.Text

End Sub

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值