Visual C++ Zabezpieczenie, gdy użytkownik wpisuje w textBox literę zamiast liczby

Odpowiedz Nowy wątek
2020-01-13 21:01
0

Witam, tworze swój pierwszy program okienkowy i napotkałem problem. Gdy użytkownik wprowadzi literę zamiast liczby do textBoxa wyświetla się error domyślny od visuala. Ja natomiast chciałem zaprogramować, by przy wprowadzeniu litery wyświetlał się messagebox, a TextBox "czyścił się".

 if (!(a = Convert::ToDouble(textBox1->Text)))
    {
             MessageBox::Show("WPROWADŹ LICZBĘ!", "Bład", MessageBoxButtons::OK, MessageBoxIcon::Error);
    } 

Próbowałem także za pomocą wyjątków, ale nie poskutkowało.
Pozdrawiam, mam nadzieje, że ktoś pomoże

Pozostało 580 znaków

2020-01-13 21:02
kq
0

Jak tworzysz tego textboxa? Może już masz filtr inputu ustawiony?


Pozostało 580 znaków

2020-01-13 23:09
0

Gdy użytkownik wprowadzi literę zamiast liczby do textBoxa wyświetla się error domyślny od visuala.

To nie visual, a Convert::ToDouble. Dotnetowa wersja rzuca wyjątek, gdy chcesz skonwertować double'a, który nie jest doublem, więc idę o zakład, że wersja dla C++ robi to samo.

Pozostało 580 znaków

2020-01-14 10:27
0
kq napisał(a):

Jak tworzysz tego textboxa? Może już masz filtr inputu ustawiony?

to domyślny textBox utworzony po prostu przez przeciągnięcie na formatke z toolboxa

Pozostało 580 znaków

2020-01-14 16:10
1

W OnChange wyłącz przycisk odpalający metodę która ta liczbę potrzebuje o ile:

double value;
Double::TryParse(textBox1->Text,&value)

zwróci fałsz.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2020-01-14 21:07
0

Przeogromne dzięki za pomoc, zadziałało w ten sposób

else if(!(Double::TryParse(textBox1->Text, a)))
    {
        MessageBox::Show("Wprowadz liczbe!!",
        "Bład", MessageBoxButtons::OK, MessageBoxIcon::Error);

    }

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0