I had to create menus for a console application and I thought that I'd share it:
Code:Public Class Menu Public Property BackColor As ConsoleColor = ConsoleColor.Black Public Property CenterTitle As Boolean = True Public Property ForeColor As ConsoleColor = ConsoleColor.Green Public Property Options As List(Of MenuOption) = New List(Of MenuOption) Public Property Spacing As Integer = 3 Public Property Title As String = "Menu" Public Function Show() As String 'Clear the console Console.Clear() 'Set the color Console.BackgroundColor = Me.BackColor Console.ForegroundColor = Me.ForeColor 'Print the title Console.CursorTop = 0 : Console.CursorLeft = If(Me.CenterTitle, (Console.BufferWidth \ 2) - (Me.Title.Length \ 2), 0) Console.Write(Me.Title) 'Print the options Console.CursorLeft = 0 : Console.CursorTop = 2 Dim left As Integer = Me.Options.Max(Function(m) m.Name.Length) + Me.Spacing For i As Integer = 0 To Me.Options.Count - 1 Dim item As MenuOption = Me.Options.Item(i) Console.Write((i + 1).ToString & ") " & item.Name) Console.CursorLeft = left + (i + 1).ToString.Length + 1 Console.WriteLine(item.Description) Next 'Finish Return Console.ReadLine() End Function End Class Public Class MenuOption Public Property Description As String Public Property Name As String End Class




Reply With Quote