Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как ограничить ввод в textbox? Как ограничить ввод в textbox? 
:(
    Опции темы
msv530
Дата 24.4.2007, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Есть textbox и в него необходимо ввести не более 2х строк текста. Чтобы, например, когда пользователь подошел к концу второй строки, текст далее уже не вводился.
У кого-нибудь есть мысли по поводу?
PM MAIL   Вверх
mr.DUDA
Дата 24.4.2007, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



Подписаться на TextChanged и делать что-то вроде:

Код
        string text = textBox1.Text;
        
        // подсчитываем количество переносов
        int count = 0, index = -1;
        while((index = text.IndexOf(Environment.NewLine, index + 1)) != -1)
            count++;

        // если больше одного - режем строку после второго переноса
        if (count > 1)
        {
            index = text.IndexOf(Environment.NewLine);
            index = text.IndexOf(Environment.NewLine, index + 1);
            textBox1.Text = text.Substring(0, index);
        }





--------------------
user posted image
PM MAIL WWW   Вверх
msv530
Дата 24.4.2007, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Цитата(mr.DUDA @ 24.4.2007,  09:02)
Подписаться на TextChanged и делать что-то вроде:

Код
        string text = textBox1.Text;
        
        // подсчитываем количество переносов
        int count = 0, index = -1;
        while((index = text.IndexOf(Environment.NewLine, index + 1)) != -1)
            count++;

        // если больше одного - режем строку после второго переноса
        if (count > 1)
        {
            index = text.IndexOf(Environment.NewLine);
            index = text.IndexOf(Environment.NewLine, index + 1);
            textBox1.Text = text.Substring(0, index);
        }

Неее, контроль по числу Environment.Newline, это частный случай. Пользователь ведь может просто набирать текст и когда он в одну сроку не влезает, то переносится на вторую строку (при wordwrap=true). А в твоем коде он будет думать что строка одна.
PM MAIL   Вверх
XavierElf
Дата 24.4.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 24.1.2007
Где: г. Тверь

Репутация: 1
Всего: 1



Тогда ограничь по количеству вводимых символов! К примеру, обрезай строку, если ввели 256 символов.
--------------------
Даешь открытые исходники!
PM MAIL ICQ   Вверх
msv530
Дата 24.4.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 24.4.2007

Репутация: нет
Всего: нет



Цитата(XavierElf @ 24.4.2007,  09:29)
Тогда ограничь по количеству вводимых символов! К примеру, обрезай строку, если ввели 256 символов.

Если бы все было так просто. Надо сделать именно так - вводить в textbox не более двух строк текста.

Короче, щас поясню в чем дело.
Основная специфика моей работы - программирование микроконтроллеров. Мне дали микроконтроллер, к которому подсоединен индикатор и на который влазает две строчки текста. Однако все буквы имеют разные размеры ширины и без перепрошивки непонятно - влезет ли текст в эти строчки или нет. Вот я и решил написать эдакий эмулятор этих строк. Пользователь (кто будет набирать тексты, которые должны выводиться на индикатор) будет видеть - влезает ли текст в эти одну/две строки или нет.
И в общем-то все уже написал - программа отслеживает первые две строки текста и по ним сверяет каждую букву с базой и показывает влезает текст или нет. Но для полного завершения эмулятора надо сделать так, чтобы пользователь на третью строку даже и не рыпался.
Примерно так.
PM MAIL   Вверх
Naum
Дата 24.4.2007, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 1
Всего: 15



Цитата(msv530 @  24.4.2007,  10:51 Найти цитируемый пост)
И в общем-то все уже написал - программа отслеживает первые две строки текста и по ним сверяет каждую букву с базой и показывает влезает текст или нет.

Все предыдущие советы остаются актуальными. Понятно же, что вариации только по функции определения количества строк. А она у тебя есть
Цитата(msv530 @  24.4.2007,  10:51 Найти цитируемый пост)
показывает влезает текст или нет

И я не пойму, что мешает тебе
Цитата(mr.DUDA @  24.4.2007,  10:02 Найти цитируемый пост)
Подписаться на TextChanged и делать что-то вроде

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



--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.3034 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.