Показать полную графическую версию : [решено] Последовательно перемещение между textbox по заполнению
Добрый день, грубо говоря есть 4ре textbox на форме и кнопка которая реализует определенные действия с введенной информацией,
$tbk1 = New-Object System.Windows.Forms.TextBox
$tbk1.MaxLength = 2
$tbk2 = New-Object System.Windows.Forms.TextBox
$tbk2.MaxLength = 2
$tbk3 = New-Object System.Windows.Forms.TextBox
$tbk3.MaxLength = 7
$tbk4 = New-Object System.Windows.Forms.TextBox
$tbk4.MaxLength = 4
$zak = New-Object System.Windows.Forms.Button
$zak.add_Click({неважно какие действия})
как сделать последовательное перемещение от одного textbox к другому после ввода максимально разрешенного количества символов...
заранее благодарен за дельные советы и подсказки.
DJ Mogarych
14-04-2021, 17:02
$wshell = New-Object -ComObject wscript.shell;
$wshell.SendKeys('{TAB}')
?
DJ Mogarych, не, не то:
после ввода максимальноразрешенного количества символов... »
Хуман, вот Вам примерная болванка:
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
[System.Windows.Forms.Application]::EnableVisualStyles()
$oForm = New-Object System.Windows.Forms.Form
$oForm.Text = 'Sample form'
$oForm.Size = New-Object System.Drawing.Size(200, 100)
$oForm.StartPosition = 'CenterScreen'
$oTextBox1 = New-Object System.Windows.Forms.TextBox
$oTextBox1.Location = New-Object System.Drawing.Point(10, 10)
$oTextBox1.Size = New-Object System.Drawing.Size(80, 10)
$oTextBox1.MaxLength = 10
$oTextBox1.Add_TextChanged({
if ($this.MaxLength -eq $this.Text.Length -and $this.SelectionStart -eq $this.MaxLength -and $this.SelectionLength -eq 0) {
$oTextBox2.Focus()
}
})
$oForm.Controls.Add($oTextBox1)
$oTextBox2 = New-Object System.Windows.Forms.TextBox
$oTextBox2.Location = New-Object System.Drawing.Point(100, 10)
$oTextBox2.Size = New-Object System.Drawing.Size(80, 10)
$oTextBox2.MaxLength = 10
$oTextBox2.Add_TextChanged({
if ($this.MaxLength -eq $this.Text.Length -and $this.SelectionStart -eq $this.MaxLength -and $this.SelectionLength -eq 0) {
$oTextBox1.Focus()
}
})
$oForm.Controls.Add($oTextBox2)
$oForm.Add_Shown({$oTextBox1.Select()})
$oForm.ShowDialog()
Фокус перебросится на следующее поле ввода при изменении содержимого текущего поля ввода при одновременном выполнении следующих условий:
достигнуто максимальное количество символов;
курсор находится в конце текста;
нет выделения.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.