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.

[VC++] Validating dla maskedTextBox

pawek1 31 Gru 2011 02:57 627 2
  • #1 31 Gru 2011 02:57
    pawek1
    Poziom 9  

    Witam Forumowiczów!

    Tworząc program w C++/CLI (VC++) w Windows Forms napotkałem na następującą przeszkodę. Otóż chciałbym korzystając z maskedTextBox wymusić aby użytkownik mógł wpisać tylko godzinę w formacie hh:mm:ss. Niestety ustawiając maskę wprowadzająca (u mnie 00:00:00 [gdzie: 0 – dowolna cyfra]) i ustawiając

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    nie mogę zablokować przypadków gdy użytkownik wpisze powiedzmy 99:99:99 lub 27:67:60. Domyślam się, że można utworzyć jakiś bliżej nie znany mi Event, który sprawdzałby mi te przypadki uniemożliwiając wpisanie niepoprawnych wartości. Chyba, że nawet korzystając z istniejących bibliotek, można to jakoś zrealizować (niestety lektura z MSDNu na razie nie pomogła mi). Szperając po sieci nie udało mi się znaleźć nic, a najprostsze wykorzystanie wyrażeń regularnych określających przedziały liczbowe dla poszczególnych pozycji nie sprawdzi się np. w drugim z wymienionych przypadków. Jeśli ktoś ma jakiś pomysł, albo sam miał takiego typu problem i poradził sobie prosiłbym o rady/ wskazówki, bądź fragmenty kodu.

    Z góry dziękuję!

    0 2
  • Pomocny post
    #2 31 Gru 2011 12:18
    marcinj12
    Poziom 40  

    A nie lepiej by Ci było wykorzystać DateTimePicker z ustawionym formatem Time?
    Oczywiście trzeba wtedy pamiętać, że wybraną wartością jest i tak pełna data, jednak wyłuskanie z niej samej godziny to nie problem.

    Niemniej, jeśli pozostać przy MaskedTextBox, to ja bym to podpiął pod zdarzenie Validating (kod w C# ale do łatwego przerobienie pod C++):

    Kod: csharp
    Zaloguj się, aby zobaczyć kod

    0
  • #3 14 Sty 2012 18:31
    pawek1
    Poziom 9  

    Dziękuję za podpowiedź, rozwiązałem to niemalże identycznie w C++, jedyna różnica polega na tym, że nie wyłączałem wszystkich Event, tylko określone, dla których wartość zmiennej musi być true.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0