我的表单中有一些文本框,用户需要输入不同的文章价格,我想要做的是在文本发生变化时自动添加,00
。因此,当用户键入123
时,它会显示为123,00
!
我尝试使用下面的代码,但它似乎不起作用:
private void textBox6_TextChanged(object sender, EventArgs e)
{
if (!textBox6.Text.Contains(","))
textBox6.SelectionStart =textBox6.TextLength;
textBox6.Text += ",00";
}
任何帮助都将受到高度赞赏
答案 0 :(得分:1)
使用String.EndsWtih
仅检查字符串的结尾。
private void textBox6_TextChanged(object sender, EventArgs e)
{
if (!textBox6.Text.EndsWith(",00"))
textBox6.Text += ",00"
}
除了TextChanged
事件之外,使用Leave
事件,除非您确实需要立即进行更改。每次按下按键时都要进行这样的复杂操作,往往效果不佳。
答案 1 :(得分:1)
使用带有TextBox的按键事件的代码。
答案 2 :(得分:0)
尝试以下代码:
textBox6.BeginInvoke(delegate ()=>
{
textBox6.Text +=",00"
});
答案 3 :(得分:0)
就像Jason所说,你可以使用leave
事件,如果这不合适,那么将其转换为字符串并将其反馈到文本框中,如下所示:
private void textBox6_TextChanged(object sender, EventArgs e)
{
string myString = textBox6.Text;
if (!myString.Contains(','))
{
myString += ",00";
}
textBox6.Text = myString;
}
我还建议您查看检查以确保用户只输入数值。
答案 4 :(得分:0)
尝试string.Format。
string numStr = textBox6.Text;
decimal num;
if(decimal.TryParse(numStr, out num)){
textBox6.Text = string.Format("{0:#,##0.00}", num);
}
但是,如果需要逗号','作为小数点分隔符,则需要指定一些文化。