Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C# jak zamienić litere na cyfre

hanibal_lekter 31 Mar 2011 20:44 1629 5
  • #1 31 Mar 2011 20:44
    hanibal_lekter
    Poziom 11  

    witam

    mam pytanie robię projekt w C# (visual studio net 2010) i mam pytanie: jak mam zrobić żeby zamieniał mi literę na cyfrę. Chodzi o to że jak wpisuje np 'a' to mi wywala program, chodzi o to by zamieniał tą literę na cyfrę 0 i zmieniał jej kolor na czerwony
    będę wdzięczny za odpowiedz
    za pomoc pifko :D

    0 5
  • #2 31 Mar 2011 22:21
    Mad.
    Poziom 18  

    Jest jeszcze lepszy sposób, o ile będzie Ci on odpowiadać. Litery będą po prostu blokowane i nie będzie można ich wpisywać:
    http://msdn.microsoft.com/en-us/library/syste...dows.forms.control.keypress%28v=VS.90%29.aspx
    KeyDown i KeyPress to wbudowane zdarzenia, znajdziesz je w opcjach kontrolki TextBox.

    Inna opcja to usunięcie niepożądanych znaków przed zapisaniem liczby do zmiennej. Przykład:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    Lub kasowanie / zmiana znaków na bieżąco, czyli w zdarzeniu TextChanged.

    0
  • #3 01 Kwi 2011 19:55
    hanibal_lekter
    Poziom 11  

    kod do currencyTextBox11_TextChanged wygląda tak

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    tylko że po wszystko oprósz if (TextBox11.Text = (double.Parse(currencytextBox11.Text) < 0)) startuje czemu ?

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. - arnoldziq

    0
  • #4 01 Kwi 2011 20:59
    marcinj12
    Poziom 40  

    Jak rozumiem potrzebujesz walidajcję liczby z przecinkiem (typu double)?
    double.Parse() wyrzuca wyjątek, jeśli format jest niepoprawny.
    Jeśli chcesz użyć go do walidacji, lepiej wykorzystaj metodę double.TryParse(), która nie zgłasza wyjątku przy błędzie konwersji. Poniżej masz dwa przykłady jak to można rozwiązać z komentarzami.

    1. Ja zawsze stosuję taką metodę, (można ją "sparametryzować" wg własnych potrzeb):

    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Stosujesz:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod



    2. Albo, jeżeli nie chcesz dopuszczać do wpisania nieprawidłowej liczby, napisz metodę która na etapie wpisywania dopuszcza tylko: cyfry, klawisze kontrolne (backspace, delete) oraz znak separatora dziesiętnego.
    Jeżeli piszesz pod konkretny język, możesz "z palca" zamiast separatorDziesietny wstawić "," lub ".", a jeżeli ma być uniwersalne - to gdzieś wcześniej zainicjuj zmienną:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    Sama metoda wygląda tak:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod


    a podpinasz ją do każdego textboxa którego chcesz "chronić" przed wpisaniem złej wartości, umieszczając taki kod w jego zdarzeniu KeyPres:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #5 02 Kwi 2011 17:44
    hanibal_lekter
    Poziom 11  

    a teraz mam inne pytanie mając numericUpDown dokładnie 4: min A, max A, min B, max B jak przypisać do buttona1

    0
  • #6 02 Kwi 2011 18:16
    Anonymous
    Użytkownik usunął konto