Режим замены в TextBox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Режим замены в TextBox

Сообщение Viper » 28.02.2006 (Вт) 17:58

Есть ли возможность реализации режима замены при вводе символов в TextBox при изменения настроек TextBox? Другими словами, есть ли у TextBox (а если шире, то у EDIT) такой режим? Или надо делать реализацию режима замены ручками?
Весь мир матрица, а мы в нем потоки байтов!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.02.2006 (Вт) 18:14

Вопрос неясен.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 28.02.2006 (Вт) 18:19

А какая часть вопроса непонятна? Может быть так спрошу: есть ли в TextBox встроенная реализация режимы замены текста? Т.е. режима при котором вводимый текст заменяет ранее введенный
Весь мир матрица, а мы в нем потоки байтов!

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 28.02.2006 (Вт) 18:49

Попробуй нажать клавишу Insert на клавиатуре и понабирать в TextBox поверх введенного.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 28.02.2006 (Вт) 18:57

Оверпринт, то бишь. Офигеть, только сейчас заметил, что обычный текстбокс, оказывается, действительно этого не умеет.

Проверил апишки - пусто. Видимо, нужно как-то отслеживать состояние insert mode - оно глобально для процесса, наск. я помню...

end3r
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 23.01.2006 (Пн) 15:45

Сообщение end3r » 28.02.2006 (Вт) 20:59

Не совсем понятен вопрос.
Как я понял это
Код: Выделить всё
Private Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = 20 'сколько символов выделить
End Sub

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 01.03.2006 (Ср) 8:14

end3r писал(а):Не совсем понятен вопрос.
Как я понял это


Скорее по GotFocus и Change выделять первый SelStart символ.

А вообще - не припомню ни одной программы где бы TextBox так работал.
Это уже больше на MaskEdit смахивает...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 01.03.2006 (Ср) 8:31

А может не париться с выделением, а Insert нажать?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.03.2006 (Ср) 9:27

GAGArin писал(а):А может не париться с выделением, а Insert нажать?

А может читать топик, прежде чем постить? :evil:
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 01.03.2006 (Ср) 9:46

Да, кажись только ручками.

зы: Вариант с эмуляцией клавиши Insert рассматривать категорически не советую.
А я все практикую лечение травами...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.03.2006 (Ср) 10:14

Да как вы все собрались "эмулировать клавишу Insert", если даже реальная клавиша Insert не включает режим замены? :roll:
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 01.03.2006 (Ср) 11:24

Разговоров-то... А делов:..
Код: Выделить всё
Private Sub Text1_KeyPress(KeyAscii As Integer)
    If Insert Then
        Text1.SelLength = 1
        Text1.SelText = Chr(KeyAscii)
        KeyAscii = 0
    End If
End Sub
Лучший способ понять что-то самому — объяснить это другому.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 01.03.2006 (Ср) 11:38

Ты забыл про BackSpace. Надо так
Код: Выделить всё
If Insert And KeyAscii <> 8 Then
        Text1.SelLength = 1
        Text1.SelText = Chr(KeyAscii)
        KeyAscii = 0
End If
А я все практикую лечение травами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 01.03.2006 (Ср) 11:42

Похоже действительно только ручками... Ни API соответствующей нет, ни сообщения, дающего возможность установить TextBox'у такой режим нет... Кстати, и Блокнот тоже не реализует режим вставки...

Сделаем ручками, благо это не так уж и сложно...

Всем Спасибо!
Весь мир матрица, а мы в нем потоки байтов!

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 01.03.2006 (Ср) 11:43

Да как вы все собрались "эмулировать клавишу Insert", если даже реальная клавиша Insert не включает режим замены?
Век живи - век учись! Чесслово, только сейчас заметил что это действительно так. tyomitch, спасибо... :lol:
А я все практикую лечение травами...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 01.03.2006 (Ср) 11:49

Как я понял "режим замены" как таковой не включается клавишей Insert. Если он необходим, его надо реализовывать самому, отслеживая состояние клавиши Insert (при помощи GetKeyState например) и отлавливая вводимые символы
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 42

    TopList