Powershell不节省价值

时间:2017-08-16 10:08:01

标签: powershell variables

我对我的代码有疑问。 我在powershell中实现了一个表单,当我点击按钮时,代码在datagridview中添加变量$ Test,如果选中复选框并且$ test = YES。在对按钮进行第一次操作后,我将变量$ test更改为" NO"。

但是当我再次点击按钮时,变量$ Test再次变为" YES" ...而且我不明白为什么变量被重置为YES而没有用新值保存" NO"

示例:

[reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null
[reflection.assembly]::loadwithpartialname("System.Drawing") | Out-Null

$Test = "YES"

Add-Type -AssemblyName System.Windows.Forms 
Add-Type -AssemblyName System.Drawing 
$MyForm = New-Object System.Windows.Forms.Form 
$MyForm.Text="test"
$MyForm.Size = New-Object System.Drawing.Size(1000,350) 

$mButton1 = New-Object System.Windows.Forms.Button 
$mButton1.Text="test"
$mButton1.Top="155"
$mButton1.Left="30"
$mButton1.Anchor="Left,Top"
$mButton1.Size = New-Object System.Drawing.Size(100,23) 
$MyForm.Controls.Add($mButton1) 
$mButton1.Add_Click({
If($mCheckBox4.Checked -eq $True -and $Test -eq "YES"){ 
write-host "IN IF"$Test
$DataGridView.Rows.Add($Test)
}

$Test = "NO"
write-host "Out IF"$Test
})


$mCheckBox4 = New-Object System.Windows.Forms.CheckBox 
$mCheckBox4.Text="test"
$mCheckBox4.Top="80"
$mCheckBox4.Left="10"
$mCheckBox4.Anchor="Left,Top"
$mCheckBox4.Size = New-Object System.Drawing.Size(100,23) 
$MyForm.Controls.Add($mCheckBox4)

$dataGridView = New-Object System.Windows.Forms.DataGridView 
$dataGridView.RowTemplate.DefaultCellStyle.ForeColor = [System.Drawing.Color]::FromArgb(255,0,128,0) 
$dataGridView.Name = 'dataGridView' 
$dataGridView.DataBindings.DefaultDataSourceUpdateMode = 0 
$dataGridView.ReadOnly = $True 
$dataGridView.Top="5"
$dataGridView.Left="500"
$dataGridView.Size = New-Object System.Drawing.Size(425,185)
$dataGridView.AllowUserToDeleteRows = $False 
$dataGridView.RowHeadersVisible = $False 
#$dataGridView.TabIndex = 8 
$dataGridView.SelectionMode = 'FullRowSelect'
#$dataGridView.Anchor = 15 
$dataGridView.AutoSizeColumnsMode = 16 
$dataGridView.AllowUserToAddRows = $False 
#$dataGridView.ColumnHeadersHeightSizeMode = 2 
#$dataGridView.AllowUserToOrderColumns = $True 
#$dataGridView.AllowUserToResizeRows = $False
$dataGridView.ColumnCount = 1
$dataGridView.ColumnHeadersVisible = $true  
$dataGridView.Columns[0].Name = "Trigger"
$MyForm.Controls.Add($dataGridView) 


$MyForm.ShowDialog()

https://www.hostingpics.net/viewer.php?id=8107302017081612h0222.png

在这张图片中,我添加一个写主机来查看我的变量$ Test的值,然后切换到" YES / NO" " YES / NO" ...

感谢您的帮助 此致

0 个答案:

没有答案