Add-Type -AssemblyName System.drawing
# Set initial Coordinates and Sizes
$X = 10
$Y = 15
$LabelHeight = 20
$LabelWidth = 170
$TextBoxHeight = 20
$TextBoxWidth = 210
# Add ToolTips for the buttons
$tooltip1 = New-Object System.Windows.Forms.ToolTip
$ShowHelp={
#display popup help
#each value is the name of a control on the form.
Switch ($this.name) {
"ExitButton" {$tip = "Exit Button INFO here."}
"CopyButton" {$tip = "Copy Button INFO here."}
"ClearButton" {$tip = "Clear Button INFO here."}
}
$tooltip1.SetToolTip($this,$tip)
}
#Form Setup
$MainForm = New-Object System.Windows.Forms.Form
#Form Parameter
$MainForm.Text = "PowerShell GUI v1.0"
$MainForm.Name = "MainForm"
$MainForm.DataBindings.DefaultDataSourceUpdateMode = 0
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 740
$System_Drawing_Size.Height = 600
$MainForm.ClientSize = $System_Drawing_Size
# Disable Resize, Minimize and Miximize of the form
$MainForm.MaximizeBox = $false
$MainForm.MinimizeBox = $false
$MainForm.FormBorderStyle = 'Fixed3D'
$i = 1
# Create Write Text Label
$LabelText = New-Object System.Windows.Forms.Label
$LabelText.Text = 'Write something here:'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = $X
$System_Drawing_Point.Y = $Y+30*$i
$LabelText.Location = $System_Drawing_Point
$LabelText.AutoSize = $False
$LabelText.Height = $LabelHeight
$LabelText.Width = $LabelWidth
$LabelText.TextAlign = "TopRight"
$LabelText.Font = [System.Drawing.Font]::new("Calibri", 10, [System.Drawing.FontStyle]::Bold)
$MainForm.Controls.Add($LabelText)
# Create TextBox1
$TextBox1 = New-Object System.Windows.Forms.TextBox
$TextBox1.Text = "Some text here"
$System_Drawing_Point.X = $X+$LabelWidth
$System_Drawing_Point.Y = $Y+30*$i
$TextBox1.Location = $System_Drawing_Point
$TextBox1.AutoSize = $False
$TextBox1.Width = $TextBoxWidth
$TextBox1.Name = "$Tab1TextBoxPrefix$i"
$MainForm.Controls.Add($TextBox1)
$i = 2
# Create Copy Text Label
$LabelText = New-Object System.Windows.Forms.Label
$LabelText.Text = 'Copied Text:'
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = $X
$System_Drawing_Point.Y = $Y+30*$i
$LabelText.Location = $System_Drawing_Point
$LabelText.AutoSize = $False
$LabelText.Height = $LabelHeight
$LabelText.Width = $LabelWidth
$LabelText.TextAlign = "TopRight"
$LabelText.Font = [System.Drawing.Font]::new("Calibri", 10, [System.Drawing.FontStyle]::Bold)
$MainForm.Controls.Add($LabelText)
# Create TextBox2
$TextBox2 = New-Object System.Windows.Forms.TextBox
#$TextBox2.Text = "Some text here"
$System_Drawing_Point.X = $X+$LabelWidth
$System_Drawing_Point.Y = $Y+30*$i
$TextBox2.Location = $System_Drawing_Point
$TextBox2.AutoSize = $False
$TextBox2.Width = $TextBoxWidth
$TextBox2.Name = "$Tab1TextBoxPrefix$i"
$MainForm.Controls.Add($TextBox2)
# Add COPY Button
$CopyButton = New-Object System.Windows.Forms.Button
$CopyButton.TabIndex = 4
$CopyButton.Name = "CopyButton"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 100
$System_Drawing_Size.Height = 50
$CopyButton.Size = $System_Drawing_Size
$CopyButton.UseVisualStyleBackColor = $True
$CopyButton.Text = "COPY"
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = $X*50 #250
$System_Drawing_Point.Y = $Y*3 #45
$CopyButton.Location = $System_Drawing_Point
$CopyButton.DataBindings.DefaultDataSourceUpdateMode = 0
$CopyButton.Add_MouseHover($ShowHelp)
$MainForm.Controls.Add($CopyButton)
# Add COPY Button Click event
$CopyButton.Add_Click(
{
# Copy text to TextBox2
$TextBox2.Text = $TextBox1.Text
}
)
# Add CLEAR Button
$ClearButton = New-Object System.Windows.Forms.Button
$ClearButton.TabIndex = 4
$ClearButton.Name = "ClearButton"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 100
$System_Drawing_Size.Height = 50
$ClearButton.Size = $System_Drawing_Size
$ClearButton.UseVisualStyleBackColor = $True
$ClearButton.Text = "CLEAR"
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = $X*50
$System_Drawing_Point.Y = $Y*10
$ClearButton.Location = $System_Drawing_Point
$ClearButton.DataBindings.DefaultDataSourceUpdateMode = 0
$ClearButton.Add_MouseHover($ShowHelp)
$MainForm.Controls.Add($ClearButton)
# Add CLEAR Button Click event
$ClearButton.Add_Click(
{
# Clear TextBoxes
$TextBox1.Text = ""
$TextBox2.Text = ""
}
)
# Add EXIT Button
$ExitButton = New-Object System.Windows.Forms.Button
$ExitButton.TabIndex = 4
$ExitButton.Name = "ExitButton"
$System_Drawing_Size = New-Object System.Drawing.Size
$System_Drawing_Size.Width = 100
$System_Drawing_Size.Height = 50
$ExitButton.Size = $System_Drawing_Size
$ExitButton.UseVisualStyleBackColor = $True
$ExitButton.Text = "EXIT"
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = $X*50
$System_Drawing_Point.Y = $Y*15
$ExitButton.Location = $System_Drawing_Point
$ExitButton.DataBindings.DefaultDataSourceUpdateMode = 0
$ExitButton.Add_MouseHover($ShowHelp)
$MainForm.Controls.Add($ExitButton)
# Add EXIT Button Click event
$ExitButton.Add_Click(
{
# Close GUI
$MainForm.Close()
}
)
# Add DropDown Box
$DDBox1 = New-Object System.Windows.Forms.ComboBox
$System_Drawing_Point = New-Object System.Drawing.Point
$System_Drawing_Point.X = $X +150
$System_Drawing_Point.Y = $Y + 200
$DDBox1.Location = $System_Drawing_Point
$DDBox1.Height = $TextBoxHeight
$DDBox1.Width = $TextBoxWidth
$DDBox1.DropDownHeight = 200
# Populate the DropDown Box
$DDBox1List = "Item1", "Item2", "Item3"
$DDBox1.Items.AddRange($DDBox1List)
$DDBox1.SelectedIndex = 0
$MainForm.Controls.Add($DDBox1)
# Add DDBox Change Item event
$DDBox1.add_SelectedIndexChanged(
{
$TextBox1.Text = $DDBox1.SelectedItem
}
)
#Show the Form
$MainForm.ShowDialog()| Out-Null