Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Знак переноса в TextBox на UserForm / 10 сообщений из 10, страница 1 из 1
22.03.2010, 13:14
    #36534376
DMK67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
Пользователь вводит в TextBox на форме текстовые данные.
Периодически хочется нажать Enter для того чтобы перейти на новую строку...

Как это можно сделать?

PS/ Я проверил- в VBE можно вводить текст с переносами, если его предварительно сгененрировать в Excel или txt-файле. И на кнопки и в Label и в TextBox.
...
Рейтинг: 0 / 0
22.03.2010, 14:21
    #36534577
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
DMK67,

1. Установить св-во текстбокса MultiLine в True
2.
Код: plaintext
1.
2.
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode =  13  Then TextBox1 = TextBox1 & vbCrLf
End Sub
...
Рейтинг: 0 / 0
22.03.2010, 18:02
    #36535318
Wasilich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
vlthDMK67,

1. Установить св-во текстбокса MultiLine в True
2.
Код: plaintext
1.
2.
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode =  13  Then TextBox1 = TextBox1 & vbCrLf
End Sub

Чёй то не работает!
Я жму Ctrl+Enter.
...
Рейтинг: 0 / 0
22.03.2010, 19:40
    #36535517
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
Wasilich, KeyCode = 13 соответствует клавише Enter, зачем сразу две нажимаете?
...
Рейтинг: 0 / 0
23.03.2010, 10:33
    #36536204
Wasilich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
vlthWasilich, KeyCode = 13 соответствует клавише Enter, зачем сразу две нажимаете?
Да я понимаю.
Для перехода на новую строку в TextBoxе, я жму Ctrl+Enter без макроса и всё ОК.
А вот макрос у меня не срабатывает.
И реакцию на ЕНТЕР возможно нужно так
If KeyCode = 13 Then Application.SendKeys "^{ENTER}"
Но я не стал заморачиваться и не проверял.
...
Рейтинг: 0 / 0
23.03.2010, 11:31
    #36536380
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
WasilichДля перехода на новую строку в TextBoxе, я жму Ctrl+Enter без макроса и всё ОК. Wasilich, это другой вариант решения вопроса, о котором я не знал. Мой код тогда вообще не нужен.
Но вот почему он у Вас не работает, не понятно.
...
Рейтинг: 0 / 0
28.03.2010, 10:32
    #36546654
DMK67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
Обнаружил следующее:

Во всех контролах на форме должно быть выставлено значение свойства TabStop = False. А то когда нажимаешь на Enter, фокус наводится например на кнопку "Стереть" и при следующем нажатии на Enter все стирается.... Очень прикольно...

Что касается ниже привененной конструкции, то когда начинаешь что то править в середине текста, то перенос вставляется в низ текста... ПОлучается что эта конструкция годится только при первоначальном вводе.

Код: plaintext
1.
2.
3.
'Обеспечение переноса в текстбоксе
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode =  13  Then Me.TextBox1 = TextBox1 & vbCrLf
End Sub

У меня без проблем, когда я выставил все свойства TabStop = False, начала срабатывать комбинация Ctrl-Enter, в том числе и в середине текста...

Как бы превратить событие нажатия Enter в имитацию комбинации Ctrl-Enter?
...
Рейтинг: 0 / 0
28.03.2010, 16:18
    #36546904
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
DMK67, проверил Rich TextBox Control (richtx32.ocx): он ведёт себя так, как Вы и хотите. Причём без каких-либо дополнительных ухищрений и переключения св-ва TabStop других контролов в False.
...
Рейтинг: 0 / 0
28.03.2010, 17:59
    #36546980
DMK67
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
Что касается Rich TextBox Control - он есть не на каждой машине и распространение приложения затрудняется...

Не могу понять что сделал неправильно Вроде и события отключил...Начинаю вводить Enter на форме и все подвисает с одновременной генерацией кучи переносов в TextBox1

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub ВВОД_Enter()
Application.EnableEvents = False
SendKeys "^{ENTER}"
Application.EnableEvents = True
End Sub

''Обеспечение переноса в текстбоксе
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode =  13  Then
ВВОД_Enter
End If

End Sub
...
Рейтинг: 0 / 0
29.03.2010, 11:05
    #36547669
vlth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знак переноса в TextBox на UserForm
DMK67, обработку каких событий Вы хотите отключить с помощью переключения Application.EnableEvents = False ? - дело, скорее всего в том, что на события формы и её элементов EnableEvents не влияет.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Знак переноса в TextBox на UserForm / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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