2017-08-11 65 views
1

我有一个多扩展列表框,当我右键单击框中的某个项目时,我只想选择该项目。我无法更改列表框的`SelectionMode',因为当我离开它时,必须能够选择多个项目。右键单击多选扩展列表框以突出显示只有一个选项

下面是代码我有当列表框是一个选择框的作品:

$inputboxSelectedServers.add_MouseDown({     #listbox click event 
    [System.Windows.Forms.MouseEventArgs]$e= $args[1] 
    if ($e.Button -eq [System.Windows.Forms.MouseButtons]::Right){ 
     $index = $inputboxSelectedServers.IndexFromPoint($e.Location) 
     $inputboxSelectedServers.SelectedIndex = $index 
     $Menu2.Show($inputboxSelectedServers, $e.X, $e.Y) #contextMenuStrip 
    } 
}) 

但我无法弄清楚如何改变右击鼠标行为只选择列表框项目老鼠实际上打了。

回答

0

好吧,经过一段时间的修补,灵感来袭。我所要做的就是让MultiExtended列表框只有一个在右键点击选择的项目是取消选择其他项目。在此代码中,for循环取消选择列表框中的所有项目,然后将SelectedIndex属性设置为鼠标右键单击的项目。

$inputboxSelectedServers.add_MouseDown({ 
    [System.Windows.Forms.MouseEventArgs]$e= $args[1] 
    if ($e.Button -eq [System.Windows.Forms.MouseButtons]::Right){ 
     for($i=0;$i -lt $inputboxSelectedServers.Items.Count; $i++){ 
      $inputboxSelectedServers.SetSelected($i,$false) 
     } 

     $index = $inputboxSelectedServers.IndexFromPoint($e.Location) 
     $inputboxSelectedServers.SelectedIndex = $index 
     $Menu2.Show($inputboxSelectedServers, $e.X, $e.Y) 
    } 
}) 
相关问题