ankit.agg1984 Ответов: 3

как текст текстового поля автоматически перемещается к следующему элементу управления при достижении предела в приложении c# .net windows?


Привет,

Как текст текстового поля автоматически перемещается к следующему элементу управления при достижении предела в приложении c# .net windows?

Пожалуйста, помогите мне.

заранее спасибо.

Анкит Агарвал
инженер-программист

Mayur Panchal

Вы можете обрабатывать событие TextChanged textbox. поставьте там условие, когда лимит достигнут, а затем перенесите фокус в другое текстовое поле.

3 Ответов

Рейтинг:
24

Aydin Homay

Привет
Это действительно легко просто сделайте это :

<pre lang="cs">private void textBox1_TextChanged(object sender, EventArgs e)
{

    if (((TextBox)sender).TextLength > 5)
        SendKeys.Send("{Tab}");
}


Просто помните, что вы должны установить TabIndex для элемента управления.

с уважением.


[no name]

Спасибо, что ваш код работает.
Не могли бы вы помочь мне еще раз приблизиться?

[no name]

Как мы можем использовать этот подход в sql server?
Как значение столбца автоматически перемещается в следующий столбец при достижении предела в sql server?

Aydin Homay

Хорошо пожалуйста не забудьте принять зеленую кнопку и после того как вы не уверены ;)

Aydin Homay

Значение столбца где ? в datagridview или что-то еще ? пожалуйста, опишите свой вопрос :P

[no name]

В таблице sql server значение столбца-это строка любого типа.

[no name]

Тип столбца varchar(макс.)

Aydin Homay

Хорошо, скажите мне, где вы привязываете свой столбец sql serve таблицы в вашем приложении ?

[no name]

Я хочу, чтобы значение столбца автоматически перемещалось в следующий столбец при достижении предела в sql server.

[no name]

йа

Aydin Homay

Я думаю что вы хотите экспортировать свои данные из gridview в таблицу в sql server так что если мое понимание верно вам не нужно никаких автоматических действий вы можете сделать это с dataset очень легко просто прочитайте любую строку в вашей datagrid или dataset и сгенерируйте команду Insert Sql ;)

[no name]

Никакого Приятеля.
Просто! Как и мое приложение, введите текст в один столбец, много символов в этом столбце, но требование клиента заключается в том, что столбец должен быть разбит на значение столбца, автоматически перемещающееся в следующий столбец при достижении предела.
Он применяется только для запроса select.

[no name]

Эта строка будет вводиться только в один столбец, но отображаться в четырех столбцах после достижения значения одного столбца, то же самое происходит во втором и третьем столбцах.

Рейтинг:
0

♥…ЯҠ…♥

Привет Анкит,

Надеюсь, ты этого хочешь,

Два текстовых поля, Поля textbox1 и Поле textbox2 с пределом 4 соответственно.
Если я наберу 4 символа в TextBox1, то автоматически фокус должен переместиться в TextBox2.
Например,
Если я хочу набрать 12345678.
Я печатаю на машинке 1234 в textbox1, Когда я нажимаю 5, фокус должен указывать на TextBox2 и 5678 должен быть введен в TextBox2, я прав?
Если я прав то вот код для вас

private void textBox1_TextChanged(object sender, EventArgs e)
       {
           //validates the length of textbox starts from 0.
           if (textBox1.TextLength > 3)
           {
               textBox2.Focus();
           }
       }

Я надеюсь, что это вам немного поможет.

С уважением,
РК


Рейтинг:
0

enswafford

Это очень легко сделать, просто используйте следующий код:

private void textBox1_TextChanged(object sender, EventArgs e)
{
   // Determine the number of characters typed into textbox1, 
   // if greater than 5, go to textbox2            
   if(textBox1.TextLength == 5)
   {
       // textbox2 becomes the active textbox            
       textBox2.Focus();
   }
}
Примечание: Вы должны использовать двойное равенство ( = = ), чтобы он работал, не пытайтесь использовать символ больше, чем (>).


CHill60

Причины моего понижения голоса:
- Комментарий говорит: "если больше 5, перейдите в textbox2 ", но код говорит: "если точно равно 5, перейдите в textbox2".
- Ваши слова "вы должны использовать двойное равенство ( = = ), чтобы оно работало, не пытайтесь использовать символ больше, чем (>)" - это абсолютная тошнота
- Вы, по сути, просто повторили решение 2, опубликованное 7 лет назад