Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#删除字符串/文本框中的最后一个字符。_C#_String_Character_Erase - Fatal编程技术网

C#删除字符串/文本框中的最后一个字符。

C#删除字符串/文本框中的最后一个字符。,c#,string,character,erase,C#,String,Character,Erase,我想做一些像计算器擦除按钮或更具体的事情 我想在文本框更改而未写入数字时删除最后一个字符。 就像在Java中一样,我想您可以使用CharAt()方法,但C#?如何使用以下代码: stringName = stringName.Remove(stringName.Length - 1); MSDN: 将代码放入TextBox.TextChanged事件方法尝试子字符串: var myTextBox = GetMyTexBoxFromSomewhere(); myTextBox.Text = my

我想做一些像计算器擦除按钮或更具体的事情 我想在文本框更改而未写入数字时删除最后一个字符。 就像在Java中一样,我想您可以使用CharAt()方法,但C#?

如何使用以下代码:

stringName = stringName.Remove(stringName.Length - 1);
MSDN:

将代码放入TextBox.TextChanged事件方法

尝试子字符串:

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" />

对于文本框,只需处理
按键事件,如下所示:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && e.KeyChar != '.')
    {
        e.Handled = true;
    }
}

我想您更愿意使用
NumericTextBox
像子类化
TextBox
和重写OnKeyPress所示的那样


还有其他的例子,如

请允许我演示一下谷歌网站,因为我在StackOverflow上搜索并找到了这个问题的1个、2个、甚至3个,但有4个重复alone@tnw同样的问题,但值得注意的是,另一个被接受的答案不适用(其他答案是)为什么要编辑整个问题,用完全不同的问题替换它?创建一个新的问题(此问题已关闭)不要编辑您的问题使其完全不同,然后尝试通过说它不是重复的来重新打开。这是迄今为止唯一真正的答案…问题的标题和措辞都很糟糕。这实际上是为了确保只输入数字。@DonBoitnott更令人困惑的是,OP似乎对Daniel的回答很满意。@DonBoitnott你怎么知道这是真正的答案?也许他已经知道了,不知道如何删除字符。问题对我来说很清楚:如何删除字符串中的最后一个字符。无论如何,卡尔的答案是+1,因为它将完成整个过程mess@tnw我同意,确实如此,但措辞仍然存在。也许丹尼尔是对的,我不知道。似乎有太多人在阅读之前就跳了。