winform 清除图形 powershell

winform clear graphic powershell

我正在尝试找出一种从 windows 表单图形中清除图形的方法。我看过一些使用 Graphics.clear() 调出的 C# 示例,但我似乎无法弄清楚我在这里做错了什么。我什至尝试使用 $form.visiblity 这似乎确实重置了图形,但是当我 运行 它在一个循环中(绘制多条线)时它创建了一个全新的形式 window 不'关闭。这是我正在尝试做的示例:

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")  

# Create a Form
$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(600,600)  
$form.text = "Line Draw Test"

# Get the form's graphics object
$formGraphics = $form.createGraphics()

function New-LineFromOrigin {
    Param ($form)
    $width = $form.Width
    $height = $form.Height
    $greenBrush = new-object Drawing.SolidBrush ("green")
    $formGraphics.FillEllipse($greenBrush, $width/2, $height/2, 5, 5 ) # draw an ellipse using rectangle object
    $formGraphics.DrawLine($greenBrush, $width/2, $height/2, 0, 0 ) # draw an ellipse using rectangle object
}

$Button = New-Object System.Windows.Forms.Button 
$Button.Location = New-Object System.Drawing.Size(30,30) 
$Button.Size = New-Object System.Drawing.Size(90,40) 
$Button.Text = "Draw line" 
$Button.Add_Click(
    {New-LineFromOrigin -form $form}
) 

$form.Controls.Add($Button) 

$Button2 = New-Object System.Windows.Forms.Button 
$Button2.Location = New-Object System.Drawing.Size(200,30) 
$Button2.Size = New-Object System.Drawing.Size(90,40) 
$Button2.Text = "Clear" 
$Button2.Add_Click(
    {$form.graphics.clear()}
) 

$form.Controls.Add($Button2) 
$form.Add_Shown({$form.Activate()})
[void] $form.ShowDialog()

有几种方法可以清除图形。

使表格无效

$form.Invalidate()

清除图形并重置颜色

# Clear with a new color on the background
$formGraphics.Clear([System.Drawing.Color]::White)

# Or clear with the form's current background color
$formGraphics.Clear($form.BackColor)

请记住,您实际上 clearing/deleting 什么都不是;只是在替换现有 graphic/drawing.

的表格上重新绘制一些东西