【问题标题】:Select all text in textbox when tabbing through form or clicking textbox在表单或单击文本框时选择文本框中的所有文本
【发布时间】:2019-05-02 13:54:36
【问题描述】:

我有一个 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) 

【问题讨论】:

    标签: winforms powershell textbox


    【解决方案1】:

    如果我正确理解了这个问题,您希望在导航到它们时选择文本框的内容,方法是使用 (Shift) Tab 或单击它们。

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

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

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

    第二个在文本框中单击鼠标时也是如此:

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

    在将所有文本框添加到表单之前,对它们执行此操作。

    附注使用 $Form.Dispose()

    完成后不要忘记处理表单

    【讨论】:

    • 这正是我所需要的!谢谢!
    【解决方案2】:

    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 事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2011-05-03
      • 1970-01-01
      • 2019-12-12
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 2013-05-13
      相关资源
      最近更新 更多