.NET - [решено] Обработка ввод в TextBox в реальном времени C#

Аватара пользователя
SeRgikON

.NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение SeRgikON »

В TextBox вводим некоторый текст, нужно чтобы текст вводимый пользователем обрабатывался в реальном времени...(и если встречается определенное слово, то вызывается определённое событие)

Например: введёная строка - "ыавпвСобытие1впыпсобытие2ывпрыр" пока это всё вводилось, должно было произойти 2 события(1 и 2)..Через что можно реализовать такую возможность? У TextBox'а есть событие TextChange, но как-то не допонял как в нём это реализовать..если кто сталкивался, подскажите.
Аватара пользователя
ferget

Re: .NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение ferget »

реализуется в TextChange с помощью if или case

сначала нужно распарсить строку
Аватара пользователя
ferget

Re: .NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение ferget »

Цитата ferget:



реализуется в TextChange с помощью if или case
.NET - [решено] Обработка ввод в TextBox в реальном времени C#




Можно привязать к KeyPress - будет даже быстрее. Потом сравнить уже введенное значение с нужным шаблоном.
Аватара пользователя
SeRgikON

Re: .NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение SeRgikON »

а можно про KeyPress поподробней?) с примером, если не трудно)
Аватара пользователя
dmitryst

Re: .NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение dmitryst »

в обоих случаях будет одинаково

пример с псевдопарсингом



Код:

Код: Выделить всё

                 void TextBox1TextChanged(object sender, EventArgs e)
		{
			if(ParceText(textBox1.Text)==1)
			{
				label1.Text="Что???";
			}
			else if(ParceText(textBox1.Text)==2)
			label1.Text="";
		}
		int ParceText(string str)
		{
			if(str=="Привет")
				return 1;
			else{return 2;}
		}
		void TextBox2KeyPress(object sender, KeyPressEventArgs e)
		{
			if(ParceText(textBox2.Text)==1)
			{
				label2.Text="Что???";
			}
			else if(ParceText(textBox2.Text)==2)
			label2.Text="";
		}
Аватара пользователя
SeRgikON

Re: .NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение SeRgikON »

в обоих случаях будет одинаково

пример с псевдопарсингом



Код:

Код: Выделить всё

                 void TextBox1TextChanged(object sender, EventArgs e)
		{
			if(ParceText(textBox1.Text)==1)
			{
				label1.Text="Что???";
			}
			else if(ParceText(textBox1.Text)==2)
			label1.Text="";
		}
		int ParceText(string str)
		{
			if(str=="Привет")
				return 1;
			else{return 2;}
		}
		void TextBox2KeyPress(object sender, KeyPressEventArgs e)
		{
			if(ParceText(textBox2.Text)==1)
			{
				label2.Text="Что???";
			}
			else if(ParceText(textBox2.Text)==2)
			label2.Text="";
		}
Аватара пользователя
dmitryst

Re: .NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение dmitryst »

Пример - есть TextBox по имени textBoxAge. На событие KeyPress вешаем функцию -





Код:

Код: Выделить всё

 private void textBoxAge_KeyPress(object sender, KeyPressEventArgs e)
        {
           // MessageBox.Show("test");
            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8) /// Только циферки принимаем )
                    e.Handled = true; // Удаление символа 
        }

Данная функция позволяет вводить только цифры (для указания возраста). Вместо фильтрации по сканкоду можно сделать сравнение if (textBoxAge.Text == "bla-bla-bla") { ... }



ЗЫ. Опередили....
Аватара пользователя
SeRgikON

Re: .NET - [решено] Обработка ввод в TextBox в реальном времени C#

Сообщение SeRgikON »

Цитата ferget:



в обоих случаях будет одинаково

пример с псевдопарсингом

Код:

void TextBox1TextChanged(object sender, EventArgs e)

{

if(ParceText(textBox1.Text)==1)

{

label1.Text="Что???";

}

else if(ParceText(textBox1.Text)==2)

label1.Text="";

}

int ParceText(string str)

{

if(str=="Привет")

return 1;

else{return 2;}

}

.NET - [решено] Обработка ввод в TextBox в реальном времени C#




возник вопрос, до первого ввода "Привет" всё работает, после выводится только первое условие..как сделать этот цикл "многоразовым"?)
Ответить

Вернуться в «Программирование и базы данных»