Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I change the font size of a List box in PowerShell

I am writing some PowerShell code to use for later projects. This is a list where the user selects an item from the list, and it assigns the selection to a variable. I am unsure of how to control the font size, specifically for the list box text.

Here is the code:

# Creates a window that prompts a user to select an item from a list

#Enables .NET Framework Classes
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing


# Creates the window prompt
$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "Select an Item"
$objForm.Size = New-Object System.Drawing.Size(600,500)
$objForm.StartPosition = "CenterScreen"

# Defines keystrokes as inputs
#
# Sets Enter to set highlighted item to a variable
# Sets Esc to close windowed prompt
#
$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
    {$x=$objListBox.SelectedItem;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
    {$objForm.Close()}})

# Creates the OK button for the window
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,300)
$OKButton.Size = New-Object System.Drawing.Size(100,35)
$OKButton.Text = "OK"
$OKButton.Add_Click({$x=$objListBox.SelectedItem;$ObjForm.Close()})
$objForm.Controls.Add($OKButton)

# Creates the cancel button for the window
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(200,300)
$CancelButton.Size = New-Object System.Drawing.Size(100,35)
$CancelButton.Text = "Cancel"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)

# Adds the label text
$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,40)
$objLabel.Size = New-Object System.Drawing.Size(400,50)
$objLabel.Text = "Please Select an Item"
$objForm.Controls.Add($ObjLabel)

# Creates the empty List box
$objListBox = New-Object System.Windows.Forms.ListBox
$objListBox.Location = New-Object System.Drawing.Size(10,100)
$objListBox.Size = New-Object System.Drawing.Size(500,300)
$objListBox.Height = 200


# Adds items to the list box
# Can call items from file
#
#    Example : Get-Content C:\Scripts\Test.txt | ForEach-Object {[void] $objListBox.Items.Add($_)}
#
[void] $objListBox.Items.Add("one")
[void] $objListBox.Items.Add("two")
[void] $objListBox.Items.Add("three")
[void] $objListBox.Items.Add("four")
[void] $objListBox.Items.Add("five")

$objForm.Controls.Add($objListBox)

$objForm.Topmost = $True

$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

$x
like image 949
Nickkus Avatar asked Dec 14 '22 22:12

Nickkus


1 Answers

Here is the MSDN for the ListBox Class. There is a property called Font. On the MSDN page for font can see all of the constructors or ways to make a Font Object. In this example, this is the one I used.

#Creates the empty List box
$objListBox = New-Object System.Windows.Forms.ListBox
$objListBox.Location = New-Object System.Drawing.Size(10,100)
$objListBox.Size = New-Object System.Drawing.Size(500,300)
$objListBox.Height = 200
$objListBox.Font = New-Object System.Drawing.Font("Lucida Console",12,[System.Drawing.FontStyle]::Regular)
like image 112
BenH Avatar answered Mar 07 '23 07:03

BenH