添加破折号'每四个字符输入在文本框商店信用卡信息在Windows phone 8.1 c#

本文关键字:文本 信用卡 Windows phone 信息 字符输入 破折号 四个 添加 | 更新日期: 2023-09-27 18:08:32

我正在开发银行应用程序,我必须存储信用卡信息

  1. 输入用户卡号
  2. 上每四个字符的破折号'-'将被添加到该文本框

e。g 1234-1234-1234-1234

我试了KeyDownTextChanged,但没有得到答案。按键事件

txtcardNumber.Focus(FocusState.Keyboard);
            string temp = string.Empty;
            if (txtcardNumber.Text.Length == 4)
            {
                temp = txtcardNumber.Text;
                txtcardNumber.Text += '-';
                txtcardNumber.UpdateLayout();

            }
            else if (txtcardNumber.Text.Length == 9)
            {
                txtcardNumber.Text = txtcardNumber.Text + "-";
            }
            else if (txtcardNumber.Text.Length == 14)
            {
                txtcardNumber.Text = txtcardNumber.Text + "-";
            }

当它添加'-'光标自动移到开始,我不知道为什么

添加破折号'每四个字符输入在文本框商店信用卡信息在Windows phone 8.1 c#

您可以在这种情况下使用MaskedTextBoxes。您可以设置掩码如下:

mskCardBox.Mask = "0000-0000-0000-0000";

也许这对你有帮助....

不要等到破折号出现在4位数之后。选择一个文本框,双击它,并编写下面的代码,并使文本框autopostback=true。

一次写16个数字,然后按TAB键或回车,破折号将自动出现,每个数字分成4个数字。

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    string cardno = TextBox1.Text;
    var list = Enumerable
        .Range(0, cardno.Length / 4)
        .Select(i => cardno.Substring(i * 4, 4))
        .ToList();
    var resl = string.Join("-", list);
    TextBox1.Text = resl;
}

我找到了一个简单的解决方案

               var insertText = "-";
               var selectionIndex = creditcard.SelectionStart;
               creditcard.Text = creditcard.Text.Insert(selectionIndex, insertText);
               creditcard.SelectionStart = selectionIndex + insertText.Length;