Blokowanie znaków w textboxie c#

0

Witam, pisze pewien program który od użytkownika pobiera dane w postaci cyfr oraz znaku , (np. 123,99), przez textboxa. Jedyny problem jest taki, że gdy użytkownik wpisze np. [as,z.q]-=1asz'spw itp. to program nie mogąc wyliczyć danej wartości zwraca błąd. Potrzebuję pomocy w tym jak zablokować możliwość wpisywani do textboxa liter oraz znaków specjalnych z wyjątkiem przecinka , (kropka tez musi byc zablokowana). Czy ktoś wie jak taką blokadę stworzyć?
Dodatkowe info:
Visual 2015
Rodzaj projektu - Windows Form

Trochę przygooglowłem i znalazłem kilka rozwiązań (każde generowało błędy) to jest jedno z rozwiązań które miało ich najmniej:

 private void textBox1_TextChanged(object sender, EventArgs e)
        {
         **e.Handled = !((char.IsDigit(e.KeyChar)) || (e.KeyChar == 8) || (e.KeyChar == 0x7F));**

            bool flaga;
            flaga = double.TryParse(textBox1.Text, out calc);
        }

Jakieś sugestie jak naprawić ten błąd lub co zmienić w kodzie aby zadziałało?

1

Przydatna może okazać się metoda : https://msdn.microsoft.com/pl-pl/library/yk2b3t2y(v=vs.110).aspx plus oczywiście uwzględnienie w warunku przecinka i kropki resztę znaków ignorujesz.

Albo wyrażenia regularne :)

2

Tak mniej więcej to mogło by wyglądać tak (kod na szybko więc jakieś małe błędy mogą być)

string text = (sender as TextBox).Text;
string conv = text.Replace(',','.');
double result;
bool res = double.TryParse(conv,out result);
if(res)
{
    // ok 
}
else
{
  // błąd
}
0

Dzięki za szybkie odpowiedzi :) problem rozwiązany

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