Select 在表单中切换或单击文本框时文本框中的所有文本
Select all text in textbox when tabbing through form or clicking textbox
我有一个 powershell 脚本表单,当我按 Tab 键在表单中移动或单击文本框时,我试图 select 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)
通常不会为非 Microsoft 的第三方网站做广告,但 PoshGui 及其 GUI 编辑器是初步学习 windows 表单和 Powershell 的一个很好的工具。对于点击事件,您可以通过使用以下方式为输入框创建一个函数:
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()})
通过按 Tab 键我知道有一个 Add_Keypress
事件你也可以使用。
如果我对问题的理解正确,您想 select 在导航到它们时使用文本框的内容,方法是使用 (Shift) Tab 键或单击它们。
这可以通过向每个文本框添加两个事件处理程序脚本块来完成:
当使用TAB键进入框时,第一个将处理select文本的离子:
$InputBox.Add_Gotfocus( { $this.SelectAll(); $this.Focus() })
第二个在文本框中单击鼠标时执行相同的操作:
$InputBox.Add_Click( { $this.SelectAll(); $this.Focus() })
在将所有文本框添加到表单之前对它们执行此操作。
P.S。使用 $Form.Dispose()
完成后不要忘记处理表格
我有一个 powershell 脚本表单,当我按 Tab 键在表单中移动或单击文本框时,我试图 select 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)
通常不会为非 Microsoft 的第三方网站做广告,但 PoshGui 及其 GUI 编辑器是初步学习 windows 表单和 Powershell 的一个很好的工具。对于点击事件,您可以通过使用以下方式为输入框创建一个函数:
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()})
通过按 Tab 键我知道有一个 Add_Keypress
事件你也可以使用。
如果我对问题的理解正确,您想 select 在导航到它们时使用文本框的内容,方法是使用 (Shift) Tab 键或单击它们。
这可以通过向每个文本框添加两个事件处理程序脚本块来完成:
当使用TAB键进入框时,第一个将处理select文本的离子:
$InputBox.Add_Gotfocus( { $this.SelectAll(); $this.Focus() })
第二个在文本框中单击鼠标时执行相同的操作:
$InputBox.Add_Click( { $this.SelectAll(); $this.Focus() })
在将所有文本框添加到表单之前对它们执行此操作。
P.S。使用 $Form.Dispose()