WPF Лише цифри

2075 / WPF / Текст / Лише цифри

 

Англійська мова - через (.)
Українська мова - через (,)


Цифри і одну крапку

void PreviewTextInput(object sender, TextCompositionEventArgs e)
{
  // Конвертуємо введену букву е в char
  char ch = e.Text[0];

  if ((Char.IsDigit(ch) || ch == '.'))
  {
    if (ch == '.' && textBox.Text.Contains('.')) // лише одна крапка
    {
      e.Handled = true; // не пускати
    }
  }
  else
  {
    e.Handled = true; // не пускати
  }
}

 

Цифри і одну крапку + не більше 2 цифр після крапки

void PreviewTextInput(object sender, TextCompositionEventArgs e){

  // Конвертуємо введену букву е в char
  char ch = e.Text[0];

  if ((Char.IsDigit(ch) || ch == '.'))
  {
    int a = TB2.Text.IndexOf('.');

    if (ch == '.' && a != -1) // лише одна крапка
    {
      e.Handled = true; // не пускати
    }

    if (a != -1 && TB2.Text.Length == a + 3) // до 2 цифр після коми
    {
      e.Handled = true; // не пускати
    }
  }
  else
  {
    e.Handled = true; // не пускати
  }
}

 

Лише цифри

void PreviewTextInput(object sender, TextCompositionEventArgs e){

  char ch = e.Text[0];

  if (!(Char.IsDigit(ch)))
  {
    e.Handled = true; // не пускати
  }
}

 

Через регулярний вираз

using System.Text.RegularExpressions;

void PreviewTextInput(object sender, TextCompositionEventArgs e){

  e.Handled = new Regex("[^0-9]+").IsMatch(e.Text);

}


В TextChanged потрібна додаткова перевірка

private void t1_TextChanged(object sender, TextChangedEventArgs e)
{
  if (t2 != null)
  {
    t2.Text = "Привіт";
  } 
}