powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / В ТекстБоксе все буквы ЗАГЛАВНЫЕ
21 сообщений из 21, страница 1 из 1
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34972941
part_ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как сделать так, чтоб в textbox1 всё что пишется - то сразу большими буквами.
Уговорить компьютер пока не удаётся, он у меня гордый :))
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34972994
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В модуле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Option Explicit

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
    (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const GWL_STYLE = (- 16 )

Private Const ES_UPPERCASE = &H8&
Private Const ES_LOWERCASE = &H10
Private Const ES_NUMBER = &H2000

Public Enum eTextCase
    tcUpper = - 1 
    tcLower =  0 
End Enum

Public Sub SetCase(ByRef pTextbox As TextBox, ByVal pCase As eTextCase)

    Dim dwStyle As Long
    
    With pTextbox
        dwStyle = GetWindowLong(.hwnd, GWL_STYLE)
        dwStyle = IIf(pCase, dwStyle Or ES_UPPERCASE, dwStyle Or ES_LOWERCASE)
        SetWindowLong .hwnd, GWL_STYLE, dwStyle
    End With
    
End Sub

End Sub

В форме:

Код: plaintext
    SetCase textbox1, tcUpper

Успехов
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34973675
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
  Text1.Text = UCase(Text1.Text)
End Sub
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34974131
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ Вы хоть пробывали свои примеры на практике???
Вот как нужно.

Код: plaintext
1.
2.
3.
4.
5.
6.
Option Explicit

Private Sub Text1_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

-----------
Андрей.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34974253
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем не нравится пример VladConn?
Надо всегда стремиться настроить поведение объектов заранее вместо написания алгоритмов исправляющих поведение "на лету" потом.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34974368
part_ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно код от Belkina реальный и не требует огромного напряга мозгов.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34974509
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffЧем не нравится пример VladConn?
Надо всегда стремиться настроить поведение объектов заранее вместо написания алгоритмов исправляющих поведение "на лету" потом.
Просто, на мой взгляд, избыток кода, когда можно в одну строку.
А пример AndreyMp не рабочий. Мое высказывание относилось вообще-то к нему.
Я все виду к тому, что нужно хоть немного проверять перед публикацией. А так только добрые намерения.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34974751
AndreyMp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА пример AndreyMp не рабочий. Мое высказывание относилось вообще-то к нему.Ну вобщем то это не пример был, а просто идея использовать UCase. Буквы то переводятся, печатаются только в первой позиции, но это уже другой вопрос. :)
авторНадо всегда стремиться настроить поведение объектов заранее вместо написания алгоритмов исправляющих поведение "на лету" потом.Вот с этим полностью согласен, а запостил лишь потому, чтоб у автора были варианты.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34974820
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработчики событий загрязняют код. Если у вас десяток-другой контролов на форме - не проблема. Но в сложном приложении, когда их десятки, и на каждый повешено помногу обработчиков с различным функциональным назначением, то поверьте мне, в таком коде разобраться очень сложно.
Настройка контролов заранее... слышали о понятиях "императивный" и "декларативный" стиль программирования?
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34976452
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelkinНарод Вы хоть пробывали свои примеры на практике???
Вот как нужно.

Код: plaintext
1.
2.
3.
4.
5.
6.
Option Explicit

Private Sub Text1_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

End Sub

-----------
Андрей.

Я свой код использовал. Ваш код, к сожалению, не будет работать на Copy/Paste и при программном введении данных в Text Box. Он слишком наивен и при этом исполняется столько раз, сколько нажатий на буквенные клавиши. Мой - лишь раз.

Успехов
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34978409
part_ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladConn
Я свой код использовал. Ваш код, к сожалению, не будет работать на Copy/Paste и при программном введении данных в Text Box. Он слишком наивен и при этом исполняется столько раз, сколько нажатий на буквенные клавиши. Мой - лишь раз.

Успехов

Не усложняйте. Вопрос подразумевал при вводе ручками с клавы все буквы заглавные.
А за Ваш код спасибо, пригодится.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34978451
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С чего вы взяли, что ручками?

И даже, если и так, посчитайте-ка, сколько раз будет исполняться код в Key_Press. Это просто неэффективно, вчерашний день.

Пожалуйста.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #34978565
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду, с чего вы взяли, что из вашего вопроса видно, что ручками. Вы не забывайте, что порой людям лень что-то печатать и они просто копируют, если есть такая возможность. Очень часто, также, содержимое Textbox обновляется в результате работы программы, например при загрузке данных в поля, их обновлении, вычислении и т.д. Я не усложнял, а предложил действительно "реальный" код, как вы говорите, а не любительскую заплатку, которая порвется при первой же возможности и будет поедать ресурсы при каждом прикосновении к клавиатуре.
И мой код, будучи инкапсулирован в свой класс, не будет загромождать код самого интерфейса.

Я, конечно, сознаю, что у моего кода больше линий и его труднее понять, но он того стоит. Ведь взамен - надежность и эффективность вашего же продукта.

Если вам важнее чувствовать себя комфортно с кодом вашей программы, чем ее красота и эффективность, то тогда да - UCase, Asc, Chr (три !!! функции при каждом тычке в клаву), боязнь, вдруг введут данные в ее обход и т.д. Если обратное, то тогда что-то другое, новое. Это вопрос личного комфорта и личной ответственности. Так что смотрите, что важнее.

Да, я подразумеваю, что код пишется для профессионального употребления продукта, а не для упражнения или развлечения.

Успехов.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36575553
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как сделать автозагружаемый макрос, чтобы в столбце "В" все буквы печатались в верхнем регистре?
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36575770
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svetoch_zorgaа как сделать автозагружаемый макрос, чтобы в столбце "В" все буквы печатались в верхнем регистре?обрабатывать событие изменения ячейки листа. на требуемый лист (не в модуль) запихнуть следующий код:
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column =  2  Then
        Target.Value = UCase(Target.Value)
    End If
End Sub
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36576363
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PlanB
Код: plaintext
1.
2.
3.
4.
5.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column =  2  Then
        Target.Value = UCase(Target.Value)
    End If
End Sub


Красавчик!!!

жму руку и благодарю!!!
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36576377
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
        Target.Value = UCase(Target.Value)

только при удалении текста в колонке В пишет:

Код: plaintext
1.
2.
Run-time error'-2147417848(80010108)':
Method Value of object Range filed
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36576386
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... все ок! и так сойдет...
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36576388
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОффтопикДопрограммировался. Увидев ник PlanB - первая мысль: бинарный вариант функции Plan
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36576403
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svetoch_zorga,

потому что надо писать вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo errH:
    If Target.Column =  2  And Not IsArray(Target.Value) Then
        Application.EnableEvents = False
        Target.Value = UCase(Target.Value)
        Application.EnableEvents = True
    End If
Exit Sub
errH:
    Application.EnableEvents = True
End Sub
Модератор: и не лезть в чужий топики, а открывать свои.
...
Рейтинг: 0 / 0
В ТекстБоксе все буквы ЗАГЛАВНЫЕ
    #36576453
Фотография svetoch_zorga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, благодарю :)
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / В ТекстБоксе все буквы ЗАГЛАВНЫЕ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]