Powershell: Form Window Event Minimize und Maximize
Hallo zusammen,
bin dabei eine Form mit einem Notification Icon im Tray zu verknüpfen, funktioniert soweit.
Kann also über das Notification Icon im Tray die Form per Doppelklick wieder in ihren Ursprungszustand zurück befördern.
Was leider nicht funktioniert ist ein Event auf den Standard Minimierungs-Button zu bekommen.
Für den Close-Button gibt es ein Event Add_FormClosing, welches ich bereits verwenden (siehe unten). Gibt es sowas auch für die Minimize-/ Maximize-Buttons?
Möchte auf dem Event dann $mainWindow.WindowState = "minimized" setzen, so dass die Form nicht immer über der Taskbar klebt.
Danke und Gruß, Sascha
Uwe hat doch bestimmt eine Lösung @colinardo
bin dabei eine Form mit einem Notification Icon im Tray zu verknüpfen, funktioniert soweit.
Kann also über das Notification Icon im Tray die Form per Doppelklick wieder in ihren Ursprungszustand zurück befördern.
Was leider nicht funktioniert ist ein Event auf den Standard Minimierungs-Button zu bekommen.
Für den Close-Button gibt es ein Event Add_FormClosing, welches ich bereits verwenden (siehe unten). Gibt es sowas auch für die Minimize-/ Maximize-Buttons?
function formObject {
[System.Reflection.Assembly]::LoadWithPartialName('System.Drawing') | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
[System.Windows.Forms.Application]::EnableVisualStyles()
$mainWindow = New-Object System.Windows.Forms.Form
$mainWindow.Size = New-Object System.Drawing.Size(550,445)
$mainWindow.FormBorderStyle = 'FixedDialog'
$mainWindow.Text = 'Test Form'
$mainWindow.StartPosition = 'CenterScreen'
$mainWindow.MaximizeBox = $false
#$mainWindow.WindowState = "minimized"
$mainWindow.ShowInTaskbar = $false
$notifyIcon = New-Object System.Windows.Forms.NotifyIcon
$notifyIcon.Icon = [System.Drawing.SystemIcons]::Information
$notifyIcon.BalloonTipText = "Test Tip Text"
$notifyIcon.BalloonTipTitle = "Test Title Text"
$notifyIcon.Visible = $true
$notifyIcon.Add_MouseDoubleClick({
if ($_.Button -eq [System.Windows.Forms.MouseButtons]::Left){
$mainWindow.WindowState = "Normal"
}
})
$mainWindow.Add_FormClosing({
$notifyIcon.Dispose()
})
$mainWindow.ShowDialog() | Out-Null
}
formObject
Danke und Gruß, Sascha
Uwe hat doch bestimmt eine Lösung @colinardo
Please also mark the comments that contributed to the solution of the article
Content-Key: 305305
Url: https://administrator.de/contentid/305305
Printed on: April 28, 2024 at 12:04 o'clock
5 Comments
Latest comment
Kann kein Event für System.Windows.Forms finden, welches den Vater $mainWindow in den Hintergrund setzt.
function formObject {
[System.Reflection.Assembly]::LoadWithPartialName('System.Drawing') | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms') | Out-Null
[System.Windows.Forms.Application]::EnableVisualStyles()
$mainWindow = New-Object System.Windows.Forms.Form
$mainWindow.Size = New-Object System.Drawing.Size(550,445)
$mainWindow.FormBorderStyle = 'FixedDialog'
$mainWindow.Text = 'Test Form'
$mainWindow.StartPosition = 'CenterScreen'
$mainWindow.MaximizeBox = $false
$mainWindow.ShowInTaskbar = $false
$notifyIcon = New-Object System.Windows.Forms.NotifyIcon
$notifyIcon.Icon = [System.Drawing.SystemIcons]::Information
$notifyIcon.BalloonTipText = "Test Tip Text"
$notifyIcon.BalloonTipTitle = "Test Title Text"
$notifyIcon.Visible = $true
$notifyIcon.Add_MouseDoubleClick({
if ($_.Button -eq [System.Windows.Forms.MouseButtons]::Left){
$mainWindow.WindowState = "Normal"
$mainWindow.Opacity = 100
}
})
$mainWindow.Add_FormClosing({
$notifyIcon.Dispose()
})
$mainWindow.add_Resize({
if ($mainWindow.WindowState -eq [System.Windows.Forms.FormWindowState]::Minimized){
$mainWindow.Opacity = 0
}
})
$mainWindow.ShowDialog() | Out-Null
}
formObject