DriveList Control (VBCCRDriveList)
The VBCCRDriveList control provides a dropdown list box for displaying and selecting available drives in the system. It supports displaying different types of drives (such as fixed disks, optical drives, network drives, etc.) and provides a rich event handling mechanism.
Properties
Basic Properties
Drive
- Currently selected drive letterDriveLetter
- Currently selected drive letter (letter portion only)DriveType
- Current drive typeDRIVE_UNKNOWN
(0) - Unknown typeDRIVE_NO_ROOT_DIR
(1) - Invalid driveDRIVE_REMOVABLE
(2) - Removable driveDRIVE_FIXED
(3) - Fixed driveDRIVE_REMOTE
(4) - Network driveDRIVE_CDROM
(5) - CD-ROMDRIVE_RAMDISK
(6) - RAM disk
List
- Drive listListCount
- Number of drivesListIndex
- Index of currently selected item
Appearance Properties
BackColor
- Background colorForeColor
- Foreground colorEnabled
- Whether control is enabledFont
- Font settingsVisible
- Whether visible
Events
Change
- Triggered when selected drive changesClick
- Triggered when control is clickedDblClick
- Triggered when control is double-clickedGotFocus
- Triggered when control receives focusLostFocus
- Triggered when control loses focusKeyDown
- Triggered when keyboard key is pressedKeyPress
- Triggered during keyboard key pressKeyUp
- Triggered when keyboard key is releasedMouseDown
- Triggered when mouse button is pressedMouseMove
- Triggered when mouse movesMouseUp
- Triggered when mouse button is releasedScroll
- Triggered when list is scrolled
Code Examples
Basic Usage
vb
Private Sub InitDriveList()
With DriveList1
.Drive = "C:" ' Set initial drive
End With
End Sub
Drive Manager
vb
Private Type DriveInfo
Letter As String
DriveType As Integer
VolumeName As String
FileSystem As String
TotalSize As Currency
FreeSpace As Currency
SerialNumber As Long
IsReady As Boolean
End Type
Private Type DriveManager
Drives() As DriveInfo
Count As Long
End Type
Private Manager As DriveManager
Private Sub InitDriveManager()
With Manager
ReDim .Drives(1 To 26) ' A-Z
.Count = 0
' Scan all drives
RefreshDrives
End With
End Sub
Private Sub RefreshDrives()
With Manager
.Count = 0
' Scan drives
Dim Letter As String
For Letter = "A" To "Z"
If GetDriveType(Letter & ":\") > DRIVE_NO_ROOT_DIR Then
.Count = .Count + 1
GetDriveInfo Letter, .Drives(.Count)
End If
Next Letter
End With
End Sub