So add 7 labels, 5 text boxes and a Combo Box...

Name the combo box : drivesOnPc

name the label "Not ready" : driveReadyStatus

Name the textbox ( by "Volume Label" ) : driveVolumeLabel

Name the textbox ( by "Type" ) : driveType

Name the textbox ( by "File System" ) : driveFormat

Name the textbox ( by "Root Directory" ) : driveRootDirectory

Name the textbox ( by "Name" ) : driveName


(The rest of the labels names can be "label1" or whatever because they don't matter.)


Put them like so :




PHP Code:
Imports System.IO

Public Class Form1

    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        Me
.driveReadyStatus.Text ""

        
Dim drives As System.IO.DriveInfo() = System.IO.DriveInfo.GetDrives

        drivesOnPc
.Items.AddRange(drives)
    
End Sub

    
Private Sub Form1_Paint(ByVal sender As System.ObjectByVal e As System.Windows.Forms.PaintEventArgsHandles MyBase.Paint

        Dim rect 
As Rectangle = New Rectangle(37020200200)

        
Dim rect2 As Rectangle = New Rectangle(31010320320)

        
Dim freeLegend As Rectangle = New Rectangle(3152752020)
        
Dim usedLegend As Rectangle = New Rectangle(3153002020)

        
e.Graphics.DrawRectangle(Pens.Blackrect2)

        If 
isSpaceInfoAvailable True Then

            e
.Graphics.FillPie(Brushes.Greenrect0sweep)
            
e.Graphics.FillPie(Brushes.Redrectsweep360 sweep)

            
e.Graphics.FillRectangle(Brushes.GreenfreeLegend)
            
e.Graphics.FillRectangle(Brushes.RedusedLegend)

            
e.Graphics.DrawString("Capacity:", New Font("Tahoma"10FontStyle.Regular), Brushes.Black, New PointF(350230))
            
e.Graphics.DrawString("Used Space:", New Font("Tahoma"10FontStyle.Regular), Brushes.Black, New PointF(335275))
            
e.Graphics.DrawString("Free Space:", New Font("Tahoma"10FontStyle.Regular), Brushes.Black, New PointF(335300))
            
e.Graphics.DrawString(totalSpace.ToString("N") + " bytes", New Font("Tahoma"10FontStyle.Regular), Brushes.Black, New PointF(420230))
            
e.Graphics.DrawString(usedSpace.ToString("N") + " bytes", New Font("Tahoma"10FontStyle.Regular), Brushes.Black, New PointF(420275))
            
e.Graphics.DrawString(freeSpace.ToString("N") + " bytes", New Font("Tahoma"10FontStyle.Regular), Brushes.Black, New PointF(420300))
        
End If
    
End Sub

    
Private Sub drivesOnPc_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles drivesOnPc.SelectedIndexChanged

        LoadDriveInfo
(drivesOnPc.Items(drivesOnPc.SelectedIndex).ToString)

        
Me.Invalidate()

    
End Sub

    
Private Sub LoadDriveInfo(ByVal driveLetter As String)

        
Dim driveInfo As System.IO.DriveInfo
        
        
Try
            
driveInfo = New System.IO.DriveInfo(driveLetter)
        Catch 
ex1 As ArgumentNullException
            MessageBox
.Show("The drive letter can not be null./n/r" ex1.Message"Drive Letter error"MessageBoxButtons.OKMessageBoxIcon.Error)
            Return
        Catch 
ex2 As ArgumentException
            MessageBox
.Show("The drive letter must be in the range of a-z./n/r" ex2.Message"Drive Letter error"MessageBoxButtons.OKMessageBoxIcon.Error)
            Return
        
End Try

        
Me.driveName.Text driveInfo.Name

        
Try
            If 
driveInfo.VolumeLabel.Length 0 Then
                Me
.driveVolumeLabel.Text driveInfo.VolumeLabel
            
Else
                
Me.driveVolumeLabel.Text "None"
            
End If
            
Me.driveFormat.Text driveInfo.DriveFormat
            totalSpace 
driveInfo.TotalSize
            freeSpace 
driveInfo.TotalFreeSpace
            usedSpace 
totalSpace freeSpace
            sweep 
360.0F freeSpace totalSpace
            isSpaceInfoAvailable 
True
        
Catch
            
Me.driveVolumeLabel.Text "Not available"
            
Me.driveFormat.Text "Not available"
            
isSpaceInfoAvailable False
        End 
Try

        
Me.driveType.Text driveInfo.DriveType.ToString

        Me
.driveRootDirectory.Text driveInfo.RootDirectory.ToString
        dirInfo 
driveInfo.RootDirectory

        
If driveInfo.IsReady True Then
            Me
.driveReadyStatus.Text "Drive is Ready"
        
Else
            
Me.driveReadyStatus.Text "Drive is NOT Ready"
        
End If

    
End Sub

    
Private Function ConvertBytesToMB(ByVal bytes As Int64) As String
        Dim mb 
As Long bytes 1048576
        
Return mb.ToString("N")
    
End Function

    Private Function 
ConvertBytesToGB(ByVal bytes As Int64) As String
        Dim gb 
As Long bytes 1073741824
        
Return gb.ToString("N")
    
End Function


    Private 
dirInfo As DirectoryInfo
    
Private totalSpace As Long
    
Private freeSpace As Long
    
Private usedSpace As Long
    
Private sweep As Single
    
Private isSpaceInfoAvailable As Boolean

End 
Class 
Final result: