Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Последовательно перемещение между textbox по заполнению (http://forum.oszone.net/showthread.php?t=348550)

Хуман 14-04-2021 16:09 2955719

Последовательно перемещение между 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 2955724

Код:

$wshell = New-Object -ComObject wscript.shell;
$wshell.SendKeys('{TAB}')

?

Iska 14-04-2021 21:02 2955732

DJ Mogarych, не, не то:
Цитата:

Цитата Хуман
после ввода максимальноразрешенного количества символов... »


Iska 14-04-2021 23:34 2955744

Хуман, вот Вам примерная болванка:
Скрытый текст
Код:

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()


Фокус перебросится на следующее поле ввода при изменении содержимого текущего поля ввода при одновременном выполнении следующих условий:
  • достигнуто максимальное количество символов;
  • курсор находится в конце текста;
  • нет выделения.

Хуман 15-04-2021 08:38 2955753

Большое спасибо!


Время: 16:18.

Время: 16:18.
© OSzone.net 2001-