private void ExpiryDate_PreviewTextInput(object sender, TextCompositionEventArgs e) { char c = Convert.ToChar(e.Text); if (Char.IsControl(c)) { CardHolderName.Focus(); return; } int a = ExpiryDate.Text.ToCharArray().Where(f => Char.IsDigit(f)).Count(); if (Char.IsSurrogate(c) || Char.IsDigit(c) && a <= 3) { if (a % 2 == 0 && a != 0) { ExpiryDate.Text += "/"; ExpiryDate.SelectionStart = ExpiryDate.Text.Length; CardHolderName.Focus(); ExpiryDate.Focus(); } e.Handled = false; } else { e.Handled = true; } }
private void CardNumber_PreviewTextInput(object sender, TextCompositionEventArgs e) { char c = Convert.ToChar(e.Text); if (Char.IsControl(c)) { ExpiryDate.Focus(); return; } int a = CardNumber.Text.ToCharArray().Where(f => f != ' ').Count(); if (Char.IsDigit(c) && a <= 15) { if (a % 4 == 0 && a != 0) { CardNumber.Text += " "; CardNumber.SelectionStart = CardNumber.Text.Length; CardHolderName.Focus(); CardNumber.Focus(); } e.Handled = false; } else { e.Handled = true; } }