我正在打电话号码箱。我已经制作了(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);
}
答案 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)