Ograniczenie przecinka w pogramie Visual Studio ?

0

Cześć wszystkim to mój 1 post ,więc proszę o wyrozumiałość.

Od dłuższego czasu śledziłem forum jako gość teraz muszę sam wystosować prośbę do użytkowników ,gdyż nie znalazłem odpowiedzi na to pytanie :(

Mianowicie chciałbym się dowiedzieć tj w tytule napisałem przecinek w kalkulatorze ,który napisałem w VS ? Głównie chodzi mi o to ,że jeśli mam liczbę 1,5 i nacisnę kolejny raz przecinek on już mi się nie wyświetli. Zobrazowałem to jeśli ktoś nie zrozumiałby moich słów.
screenshot-20181022185441.png
Pozdrawiam i dzięki !

0

@WeiXiao: Tak , chce uzyskać coś takiego ,że w momencie kiedy nacisnę 100x przecinek nadal będę miał liczbę 1.5 .

0
DawvoZjalić napisał(a):

@WeiXiao: Tak , chce uzyskać coś takiego ,że w momencie kiedy nacisnę 100x przecinek nadal będę miał liczbę 1.5 .

Lub tak :)

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == 44 && textBox1.Text.Contains(','))
    {
        e.Handled = true;
    }
}

Oraz podpięcie

this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox1_KeyPress);

Chociaż tak teraz patrzę, to ma to pewną wadę - da się zrobić ctrl+v wrzucić kilka przecinków

Jest też inne podejście:

Zapisywanie poprzedniej wersji bez przecinków i jeżeli użytkownik wrzuci ich więcej, to przywróci mu poprzednią wersję

Zalety: blokuje obejście z ctrl+v
Wady: przesuwa wskaźnik na początek tekstu

private string LastVersion = "";

private void textBox1_TextChanged(object sender, EventArgs e)
{
    if (textBox1.Text.Count(znak => znak == ',') > 1)
    {
        textBox1.Text = LastVersion;
    }
    else
    {
        LastVersion = textBox1.Text;
    }
}
0

event: new character/characters in input field:

  • Store last input
  • try evaluate new input
  • on exception, restore last input.
0

Hmm a dałoby radę napisać coś tylko tym void ? Dokładnie chodzi mi o funkcje if i użycie bodajże funkcji true=1 oraz false=0 bo prowadzący chciał ,żeby ona została użyta.
screenshot-20181022193607.png

0

To zrób licznik appendów i gdy append > 1 to usuwaj o 1 i będziesz miał cały czas 1

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