Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

textbox ввод только цифр!!

59K
14 мая 2010 года
drtdrt
3 / / 12.05.2010
здравствуйте!
пишу программу на C++ WINDOWS FORM APPLICATION.
задача:
запретить ввод в textbox букв. и чтобы можно было ввести только одну запятую
11
14 мая 2010 года
oxotnik333
2.9K / / 03.08.2007
обрабатывай нажатие кнопки в поле, в обработчике в качестве параметра предается код кнопки, сравнивай этот код с нужным диапазоном и обнуляй если не попадает
59K
15 мая 2010 года
drtdrt
3 / / 12.05.2010
мне нужен код, так как я ничего не понял что вы написали
11
15 мая 2010 года
oxotnik333
2.9K / / 03.08.2007
Цитата: drtdrt
мне нужен код, так как я ничего не понял что вы написали


нужен - напиши!
ps: выпрашивание готового кода строго карается администрацией

11
15 мая 2010 года
oxotnik333
2.9K / / 03.08.2007
Цитата: drtdrt
бля, ты тупой или где?????
если бы я знал как писать КОД, я бы не спрашивал!!! ты ОЛЕНЬ!


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

38K
15 мая 2010 года
Mental_Force
23 / / 12.02.2009
Ахахах, жесть, во дибил. (Автор).

P.S. Разговарить научись для начала.
59K
15 мая 2010 года
drtdrt
3 / / 12.05.2010
String ^ s = textBox1->Text;
int ct=0;
while (s->Length != ct)
{
simvol = s->Substring(ct,1); //Выделение одного символа
if ((simvol != "0") &&
(simvol != "1") &&
(simvol != "2") &&
(simvol != "3") &&
(simvol != "4") &&
(simvol != "5") &&
(simvol != "6") &&
(simvol != "7") &&
(simvol != "8") &&
(simvol != "9"))
{
s = s->Remove(ct,1); //Удаляем символ
textBox1->Text = s;
}
else ct = ct + 1;
}
SendKeys::Send("{End}");
}
в чем ошибка??
1
15 мая 2010 года
kot_
7.3K / / 20.01.2000
[COLOR="Red"]Ввиду того, что модератор раздела давно не активен, участнику drtdrt я выдал бан на 3 месяца - за хамство. Участнику Mental_Force - нарушение за флейм.[/COLOR]
77K
12 ноября 2011 года
Сделалформубезединогобага
1 / / 12.11.2011
текстбокс без бага, можно ввести туда цифры и только 1 точку

даже если скопипастить в такую форму любой бред, она его отфильтрует

если твоя форма называется Form1, то

в Form1.h

ты найдёшь нижеследующее, только без

"int gggg; int japan;String ^ simvol;"(вставишь их куда показано)

public ref class Form1 : public System::Windows::Forms::Form
{
public:

int gggg;
int japan;
String ^ simvol;

Form1(void)
{
InitializeComponent();
//
//TODO: добавьте код конструктора
//
}


потом : найдёшь то что ниже, если у тебя уже есть такое событие

private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)

после него то что в фигурных скобках ниже

/* и */ - означает коммент, я прокомментил messageboxы и свои заметки, чтоб они не мешались
{



String ^ s = textBox1->Text; /* текст из текстбокса*/
; gggg=s->Length; /* его длина*/
String ^ lenfthh=""+gggg; /* его длина в формате строки */

/* MessageBox::Show( lenfthh, "length",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation );*/ /* длина показана тебе */

if(gggg!=0)
simvol = s->Substring((gggg-1),1); /* если длина не равна 0, то берётся первый символ */


if(gggg!=0)
/* MessageBox::Show( simvol, "last character",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation ); просто показывают последний символ из текстбокса*/





if(gggg!=0) {if ((simvol != "0") &&
(simvol != ".") &&
(simvol != "1") &&/* условие : если символ не равен цифре или точке , то : */
(simvol != "2") &&
(simvol != "3") &&
(simvol != "4") &&
(simvol != "5") &&
(simvol != "6") &&
(simvol != "7") &&
(simvol != "8") &&
(simvol != "9")) {

/*MessageBox::Show( simvol, "it's not a digit",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation ); нам говорят что это не цифра*/

textBox1->Text = textBox1->Text->Remove((gggg-1),1); /*Удаляем символ который видитили не равен точке иль цифре, удаляем последний символ, именно он сейчас под наблюдением нас*/


}
}



if(gggg==0) japan=0; /* japan - количество точек в текстбоксе */
if(gggg!=0) {japan=0;
for (int g=1; g<=gggg;g++) /* если длина строчки в текстбоксе не равно 0, то комп проверяет каждый символ по отдельности начиная с первого*/
{
simvol = s->Substring((g-1),1); /* g - номер очередного символа, substring - выделяет символ */

if(simvol==".") japan++;/*найдена точка - japan становится больше*/
/* MessageBox::Show( simvol, "next",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation );
просто показывает следущий символ
*/

/*тут символ проверяется если не равен точке или цифре*/

if ((simvol != "0") &&
(simvol != ".") &&
(simvol != "1") &&
(simvol != "2") &&
(simvol != "3") &&
(simvol != "4") &&
(simvol != "5") &&
(simvol != "6") &&
(simvol != "7") &&
(simvol != "8") &&
(simvol != "9"))
{/* если не равен, то видитили удаляем его*/
textBox1->Text = textBox1->Text->Remove((g-1),1);
break;}
if (japan>1)/* если japan больше 1, то есть у нас точек больше чем 1, то ...!*/
if (simvol = ".")
{textBox1->Text = textBox1->Text->Remove((g-1),1);break;}
/*... удаляем точку!*/
;
}}

lenfthh=""+japan; /*lenfthh это просто тот же japan только в формате текста*/
/*показ, сколько точек MessageBox::Show( lenfthh, " so many points",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation );*/

}
297
13 ноября 2011 года
koodeer
1.2K / / 02.05.2009
Ох, ё... Уже надоело видеть на разных форумах быдло-реализации текстбокса, принимающего только числа (иногда дробные).

Используйте стандартный контрол NumericUpDown! Специально предназначен для ввода чисел. Можно настроить на вещественные. В качестве разделителя (точка/запятая) используется символ текущей локали.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог