我想做一些类似计算器擦除按钮的操作,或者更具体地说,我想在更改文本框而不是写入数字时删除最后一个字符。就像在 Java 中一样,我猜你可以使用 CharAt() 方法,但是 C# 呢?
问问题
2334 次
4 回答
5
对于文本框,只需处理KeyPress
事件,如下所示:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
{
e.Handled = true;
}
}
于 2013-09-12T19:54:21.090 回答
2
尝试子字符串:
var myTextBox = GetMyTexBoxFromSomewhere();
myTextBox.Text = myTextBox.Text.Substring(0, myTextBox.Text.Length - 1);
本着“正确”的精神......如果您使用的是Windows窗体:
private void tbCalculatorLikeInput_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
// only allow one decimal point
if (e.KeyChar == '.'
&& (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
}
如果您使用的是 ASP.NET WebForms:
<asp:TextBox id="txtNumbersOnly" Runat="server" />
<asp:RegularExpressionValidator Runat="server" ID="valNumbersOnly" ControlToValidate="txtNumbersOnly" Display="Dynamic" ErrorMessage="Please enter a numbers only in text box." ValidationExpression="(^([0-9]*|\d*\d{1}?\d*)$)">
</asp:RegularExpressionValidator>
如果您使用的是 HTML5 / MVC:
<input type="number" />
于 2013-09-12T19:51:59.280 回答
0
使用以下代码:
stringName = stringName.Remove(stringName.Length - 1);
MSDN:http: //msdn.microsoft.com/en-us/library/system.string.remove.aspx
将代码放入 TextBox.TextChanged 事件方法
于 2013-09-12T19:49:56.670 回答