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

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

0

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

0

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

To nie visual, a Convert::ToDouble. <a href=https://docs.microsoft.com/en-us/dotnet/api/system.convert.todouble?view=netframework-4.8#System_Convert_ToDouble_System_String_>Dotnetowa wersja</a> 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.

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

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.

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);
			
		
	}

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