我怎样才能删除wp7中的数字短划线

时间:2013-05-06 12:33:08

标签: windows-phone-7

我正在打电话号码箱。我已经制作了(888)888-8888的格式。但现在我想操作空间。如果有人提供了错误的号码,那么他就可以编辑它。

问题在于,当我尝试从右侧删除最后一位数字时。它停止从结束4位数后删除数字。它显示了像(888)888-这样的结果。

这是我的数字和短划线格式的代码。

if (phonebox.Text.ToString().Length == 1)
                {

                    phonebox.Text = "(" + phonebox.Text.ToString();
                    phonebox.Select(phonebox.Text.Length, 0);

                }

                else if (phonebox.Text.ToString().Length == 4)
                {

                    phonebox.Text = phonebox.Text.ToString() + ")";
                    phonebox.Select(phonebox.Text.Length, 0);

                }

                else if (phonebox.Text.ToString().Length == 8)
                {

                    phonebox.Text = phonebox.Text.ToString() + "-";
                    phonebox.Select(phonebox.Text.Length, 0);

                }

这是我尝试的解决方案,但不确定它是否会起作用。

else if (phonebox.Text.ToString().Length == 9)
            {

                phonebox.Text = phonebox.Text.ToString()+"";
                phonebox.Select(phonebox.Text.Length, 0);

            }

2 个答案:

答案 0 :(得分:0)

我不确定你删除字符的方法,但这行不是删除短划线,只是附加一个空字符串对象。

 phonebox.Text = phonebox.Text.ToString()+"";

如果要删除最后一个字符,可以执行此操作

phonebox.Text = phonebox.Text.Substring(0, phonebox.Text.Length - 1)

或者,您可以用空字符串替换-

phonebox.Text = phonebox.Text.Replace("-", "");

答案 1 :(得分:0)

执行此操作的最佳方法是在if和if else检查中添加额外的条件。我想要你做的是加入

(Control.ModifierKeys & Keys.Backspace) == 0 

进入你的条件

这将检查并查看按下的键是否为退格键。如果是,那么它将不会执行上述mod到您的文本字段。

例如

 if ( (Control.ModifierKeys & Keys.Backspace) == 0  && phonebox.Text.ToString().Length == 1)

SO文章引用 How to detect the currently pressed key?