![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - непослушный textBox |
|
PowerShell - непослушный textBox
|
Пользователь Сообщения: 114 |
Есть форма, на ней TextBox. При вводе ФИО, текст приводится в правильный формат написания имени, но
при этом курсор сбрасывается в начало строки и никак это дело не победить. Add-Type -AssemblyName System.Windows.Forms $Form1 = New-Object system.Windows.Forms.Form $txtBox = New-Object Windows.Forms.TextBox $txtBox.Size = New-Object Drawing.Size(200, 25) $txtBox.Location = New-Object Drawing.Point(10, 30) $Form1.Controls.Add($txtBox) $txtBox.add_KeyPress({$txtBox.Text = (Get-Culture).TextInfo.ToTitleCase($txtBox.Text) }) $Form1.Add_Shown({$Form1.Activate()}) $result = $Form1.ShowDialog() но тогда нельзя делать исправления в тексте. Если переводить не в конец строки, а сдвигать курсор относительно вводимого символа, то вообще билеберда творится. Решение нашлось. Вдруг кому пригодится: $txtBox.add_KeyPress({ $txtLength = $txtBox.textLength if ($txtLength -eq 1) { $txtBox.text = (Get-Culture).TextInfo.ToTitleCase($txtBox.Text) $txtBox.SelectionStart = 1 } elseif ($txtLength -gt 1 -and $txtBoxFIO.SelectionStart -lt $txtLength) { $SelectStart = $txtBoxFIO.SelectionStart $txtBox.text = (Get-Culture).TextInfo.ToTitleCase($txtBox.Text) $txtBox.SelectionStart = $SelectStart } elseif ($txtLength -gt 1 -and $txtBoxFIO.SelectionStart -ge $txtLength) { $txtBox.text = (Get-Culture).TextInfo.ToTitleCase($txtBox.Text) $txtBox.SelectionStart = $txtLength } }) |
|
Отправлено: 01:57, 20-04-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать $txtBox.add_KeyPress({ $SelectionStart = $txtBox.SelectionStart $SelectionLength = $txtBox.SelectionLength $txtBox.text = (Get-Culture).TextInfo.ToTitleCase($txtBox.Text) $txtBox.SelectionStart = $SelectionStart $txtBox.SelectionLength = $SelectionLength }) |
Отправлено: 06:10, 20-04-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать А какое событие больше подходит? Это мой первый более-менее серьезный опыт с формами.
comboBox тоже победить не могу. Надо его прозрачным сделать, но сохранить картинку на основной форме. Вычитал, что надо создавать control и ему уже присваивать backcolor trnsparent. Только вот с реализацией пока туго. Спасибо. Так гораздо культурнее выглядит. |
Отправлено: 15:12, 20-04-2015 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата corbis:
Цитата corbis:
|
||
Отправлено: 00:28, 21-04-2015 | #4 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать Ну, собственно, можно взять за пример тот же код выше.
Add-Type -AssemblyName System.Windows.Forms $Form1 = New-Object system.Windows.Forms.Form $comboBox = New-Object Windows.Forms.ComboBox $comboBox.Size = New-Object Drawing.Size(200, 25) $comboBox.Location = New-Object Drawing.Point(10, 30) # А вот как написать это: SetStyle(System.Windows.Forms.ControlStyles.SupportsTransparentBackColor, $true) # я не пойму. $ComboBox.BackColor = [System.Drawing.Color]::Transparent $Form1.Add_Shown({$Form1.Activate()}) $result = $Form1.ShowDialog() |
|
Отправлено: 01:38, 21-04-2015 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
непослушный битрейд видео | fyt | Видео и аудио: обработка и кодирование | 7 | 25-01-2014 11:10 | |
p6t ws pro (непослушный биос) | KLIVER2007 | Материнские платы и память | 11 | 24-05-2013 23:51 | |
Непослушный курсор мышки | Traktor | Microsoft Windows 2000/XP | 8 | 12-01-2006 19:40 | |
Textbox | Nusik | Программирование и базы данных | 4 | 22-10-2004 10:22 | |
TextBox+1,2,3.... | Leonidas | Программирование и базы данных | 1 | 15-05-2004 03:54 |
|