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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 305305
Url: https://administrator.de/contentid/305305
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
5 Kommentare
Neuester Kommentar
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