C# 文本框显示格式
我想在每组3位数字后加上“,”。例如:当我键入3000000时,文本框将显示3000000,但值仍然是3000000。C# 文本框显示格式,c#,winforms,textbox,formatting,C#,Winforms,Textbox,Formatting,我想在每组3位数字后加上“,”。例如:当我键入3000000时,文本框将显示3000000,但值仍然是3000000。 我尝试使用maskedtexbox,但有一个缺点是maskedtexbox显示的数字类似于,\uuuuuuuuuuuuuuuuu,使用String.Format int value = 300000 String.Format("{0:#,###0}", value); // will return 300,000 您可以像这样连接到OnKeyUp事件: private v
我尝试使用maskedtexbox,但有一个缺点是maskedtexbox显示的数字类似于,\uuuuuuuuuuuuuuuuu,使用String.Format
int value = 300000
String.Format("{0:#,###0}", value);
// will return 300,000
您可以像这样连接到OnKeyUp事件:
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (!(e.KeyCode == Keys.Back))
{
string text = textBox1.Text.Replace(",", "");
if (text.Length % 3 == 0)
{
textBox1.Text += ",";
textBox1.SelectionStart = textBox1.Text.Length;
}
}
}
我希望这对您的场景可能会很好
private string text
{
get
{
return text;
}
set
{
try
{
string temp = string.Empty;
for (int i = 0; i < value.Length; i++)
{
int p = (int)value[i];
if (p >= 48 && p <= 57)
{
temp += value[i];
}
}
value = temp;
myTxt.Text = value;
}
catch
{
}
}
}
private void digitTextBox1_TextChanged(object sender, EventArgs e)
{
if (myTxt.Text == "")
return;
int n = myTxt.SelectionStart;
decimal text = Convert.ToDecimal(myTxt.Text);
myTxt.Text = String.Format("{0:#,###0}", text);
myTxt.SelectionStart = n + 1;
}
私有字符串文本
{
得到
{
返回文本;
}
设置
{
尝试
{
字符串温度=字符串为空;
for(int i=0;i 如果(p>=48&&p请尝试将此代码添加到TextBox的KeyUp
事件处理程序中
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text))
{
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");
int valueBefore = Int32.Parse(textBox1.Text, System.Globalization.NumberStyles.AllowThousands);
textBox1.Text = String.Format(culture, "{0:N0}", valueBefore);
textBox1.Select(textBox1.Text.Length, 0);
}
}
是的,它将更改存储在texbox中的值,但无论何时需要实际数字,都可以使用以下行从文本中获取:
int integerValue = Int32.Parse(textBox1.Text, System.Globalization.NumberStyles.AllowThousands);
当然,不要忘记检查用户输入到文本框中的内容是否是有效的整数。获取十进制值,然后进行设置
DecimalValue.ToString("#,#");
使用验证事件检查并重新格式化用户输入。