在表单中切换或单击文本框时,选择文本框中的所有文本

时间:2019-05-02 13:54:37

标签: winforms powershell textbox

我有一个Powershell脚本表单,当我按Tab键在表单中移动或单击文本框时,我试图选择inputbox1和inputbox2中的所有文本。看起来很简单,但是到目前为止我还没有运气。

点击事件是否需要某个鼠标处理程序功能?

$InputBox = New-Object System.Windows.Forms.TextBox 
$InputBox.Location = New-Object System.Drawing.Size(200,40) 
$InputBox.Size = New-Object System.Drawing.Size(150,40) 
$Form.Controls.Add($InputBox)


$InputBox2 = New-Object System.Windows.Forms.TextBox 
$InputBox2.Location = New-Object System.Drawing.Size(200,65) 
$InputBox2.Size = New-Object System.Drawing.Size(150,40)
$Form.Controls.Add($InputBox2) 

$InputBox3 = New-Object System.Windows.Forms.TextBox 
$InputBox3.Location = New-Object System.Drawing.Size(10,15) 
$InputBox3.Size = New-Object System.Drawing.Size(340,20) 
$InputBox3.text = $result
$Form.Controls.Add($InputBox3) 

$outputBox = New-Object System.Windows.Forms.TextBox 
$outputBox.Location = New-Object System.Drawing.Size(10,90) 
$outputBox.Size = New-Object System.Drawing.Size(490,400) 
$outputBox.MultiLine = $True 
$outputBox.ScrollBars = "Vertical" 
$Form.Controls.Add($outputBox) 

2 个答案:

答案 0 :(得分:0)

通常PoshGui及其GUI编辑器通常都不是广告非Microsoft的第三方站点的工具,但是使用Powershell初始学习Windows窗体的一种很好的工具。对于单击事件,您可以使用以下方法为输入框创建函数:

Copy_Text_All_Input_Boxes()
{
    $clipboard = ""
    $clipboard += $TextBoxExample.text
    #$clipboard += $AnotherTextBoxExample.text
    Set-Clipboard -Value $clipboard
}
#... Define text boxes
$TextBoxExample.Add_Click({Copy_Text_All_Input_Boxes()})

通过按下选项卡,我知道还有一个Add_Keypress事件也可以使用。

答案 1 :(得分:0)

如果我对问题的理解正确,则您想在导航至文本框时选择文本框的内容,方法是使用(Shift)选项卡,或者单击它们。

这可以通过在每个文本框中添加两个事件处理程序脚本块来完成:

当使用 TAB 键进入框时,第一个将处理文本的选择:

$InputBox.Add_Gotfocus( { $this.SelectAll(); $this.Focus() })

第二个鼠标在文本框中单击鼠标时会执行相同的操作:

$InputBox.Add_Click( { $this.SelectAll(); $this.Focus() })

对所有文本框执行此操作,然后再将其添加到表单中。

P.S。使用$Form.Dispose()

完成操作后,请不要忘记处理表单
相关问题