添加破折号'每四个字符输入在文本框商店信用卡信息在Windows phone 8.1 c#
本文关键字:文本 信用卡 Windows phone 信息 字符输入 破折号 四个 添加 | 更新日期: 2023-09-27 18:08:32
我正在开发银行应用程序,我必须存储信用卡信息
- 输入用户卡号
- 上每四个字符的破折号
'-'
将被添加到该文本框 上
e。g 1234-1234-1234-1234
我试了KeyDown
和TextChanged
,但没有得到答案。按键事件
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 + "-";
}
当它添加'-'光标自动移到开始,我不知道为什么
您可以在这种情况下使用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;