我是c#的新手,我正在尝试创建一个退格按钮(用于计算器),按下该按钮时,只能退格直到文本框达到0。
我不知道还有什么要补充的,到目前为止我在:
displaytxt.Text = displaytxt.Text.Substring(0, displaytxt.Text.Length - 1);
到目前为止,它能够退回到" "如果再次使用,最终会崩溃。
我希望限制退格按钮,以便在该字段中不再输入文字时,它会自动将文本更改为" 0"。
回答,谢谢你们:)
答案 0 :(得分:1)
private void backSpaceButton_Click(object sender, RoutedEventArgs e)
{
if (!String.IsNullOrEmpty(displaytxt.Text))
{
displaytxt.Text = displaytxt.Text.Substring(0, displaytxt.Text.Length - 1);
}
}
答案 1 :(得分:0)
您必须在调用substring
之前应用checkif(string.Empty != displaytxt.Text)
displaytxt.Text = displaytxt.Text.Substring(0, displaytxt.Text.Length - 1);
或者你可以检查长度
if(displaytxt.Text.Length > 0)
displaytxt.Text = displaytxt.Text.Substring(0, displaytxt.Text.Length - 1);
答案 2 :(得分:0)
你说你想永远不会得到一个空字符串,如果你只有一个字符,你想得到"0"
。因此,请检查您是否有单字符串:
if (displaytxt.Text.Length == 1)
displaytxt.Text = "0";
else
displaytxt.Text = displaytxt.Text.Substring(0, displaytxt.Text.Length - 1);
注意:请确保您没有任何其他代码将displaytxt.Text
设置为空字符串。
答案 3 :(得分:0)
如果你想模仿 BackSpace 键 ,你可以这样做:
private void backSpace_Click(object sender, EventArgs e) {
if (displaytxt.SelectionLength > 0)
displaytxt.Text = displaytxt.Text.Remove(displaytxt.SelectionStart, displaytxt.SelectionLength);
else if (displaytxt.SelectionStart > 0) {
int start = displaytxt.SelectionStart;
displaytxt.Text = displaytxt.Text.Remove(start - 1, 1);
displaytxt.Select(start - 1, 0);
}
}
如果您只想删除 最后一个字符 ,您可以取消
private void backSpace_Click(object sender, EventArgs e) {
if (!String.IsNullOrEmpty(displaytxt.Text))
displaytxt.Text = displaytxt.Text.Remove(displaytxt.Text.Length - 1);
}
答案 4 :(得分:0)
您可以尝试这种方式:
displaytxt.Text = displaytxt.Text.Length > 1 ?
displaytxt.Text.Substring(0, displaytxt.Text.Length - 1) :
"0";