Powershell选择组合框项目触发器使用按钮单击不工作

时间:2018-01-30 05:14:36

标签: wpf powershell powershell-v3.0 powershell-v4.0

我目前停留在PowerShell中的特定代码中。我想要完成的是当用户选择组合框内的项目并切换按钮时,这将根据用户在组合框中选择的项目导航到网页或应用程序。

这是我的示例代码。如果声明和切换,我尝试了两个程序。我在这里使用了开关。

这是if语句

if ($ComboBox.SelectedItem -eq "vdi"){
    $button2.Add_Click
    $ie = new-object -Com "InternetExplorer.Application"
    $ie.navigate2("website")
}

这是开关

$Form.ShowDialog() | out-null 

$Form.FindName('autool_cmbx')
    switch($ComboBox.Text) {
        "vdi" {
            $button2 = $Form.FindName('go_au')
            $button2.Add_Click
            $IE= new-object -Com "InternetExplorer.Application"
            $IE.navigate2("website") 
        }
    }

2 个答案:

答案 0 :(得分:0)

您需要告诉Add_Click函数它需要做什么。在你的情况下,它可能是这样的:

$button2.AddClick {
  $IE = New-Object -Com 'InternetExplorer.Application'
  $IE.Navigate2("website")
  $IE.Visible = $true
}

如果这不起作用,那么更多细节会很好。你是如何构建GUI的?单击按钮时发生了什么?什么不发生?会出现什么错误消息?

编辑:这是一个示例脚本,可以满足您的要求。您应该能够将其复制并粘贴到脚本文件中并运行它,它应该可以工作。让我知道你是怎么走的。

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

function Button_OnClick() {

  "`$combo.SelectedItem = $($combo.SelectedItem)" | Out-GridView

  if ($combo.SelectedItem -eq 'Google') {
    Start-Process -FilePath 'C:\Program Files\Internet Explorer\iexplore.exe' -ArgumentList 'http://www.google.com'
  } elseif ($combo.SelectedItem -eq 'Microsoft') {
    $IE = New-Object -ComObject 'InternetExplorer.Application'
    $IE.Navigate2('http://www.microsoft.com')
    $IE.Visible = $true
  }

}

$combo = New-Object -TypeName System.Windows.Forms.ComboBox
$combo.Location = New-Object -TypeName System.Drawing.Point -ArgumentList 5, 5
$combo.Size = New-Object -TypeName System.Drawing.Point -ArgumentList 100, 25
$combo.Items.Add('Google') | Out-Null
$combo.Items.Add('Microsoft') | Out-Null
$combo.SelectedIndex = 0

$button = New-Object -TypeName System.Windows.Forms.Button
$button.Location = New-Object -TypeName System.Drawing.Point -ArgumentList 5, 35
$button.Size = New-Object -TypeName System.Drawing.Point -ArgumentList 100, 25
$button.Text = 'Launch in IE'
$button.Add_Click({ Button_OnClick })

$form = New-Object -TypeName System.Windows.Forms.Form

$form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedSingle
$form.MaximizeBox = $false
$form.MinimizeBox = $false
$form.Size = New-Object -TypeName System.Drawing.Point -ArgumentList 60, 105
$form.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen

$form.Controls.Add($combo)
$form.Controls.Add($button)

$form.ShowDialog() | Out-Null

答案 1 :(得分:0)

我使用Selecteditem.content使其工作,这是组合框属性!

               $button.Add_Click({ 
                 if($ComboBox.SelectedItem.Content -eq "vpsx"){
                   $IE = new-object -Com "InternetExplorer.Application"
                     $IE.Visible = $true

          $IE.navigate2("https://ctxau001mel0006.global.anz.com/Director/?

语言环境= EN_US#HOME",0×1000)}    })