这是该程序的屏幕截图。如你所见,我把输出格式设为我想要的样子。我用过这段代码:
<DataGridTextColumn Header="Price" Binding="{Binding Path=Price, StringFormat=C, ConverterCulture='de-DE'}"/>
如何使文本框仅作为输入接受数字作为货币格式,或者如何在键入时使其自动形成?我尝试了几个我在这里和那里找到的代码,但它没有用。希望有人可以帮助我并给我一些详细的信息。数据必须保存在SQL Server数据库中,到目前为止我使用的是LINQ。
答案 0 :(得分:7)
您可以随时创建TextChanged事件并格式化文本。
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox1.Text = string.Format("{0:#,##0.00}", double.Parse(textBox1.Text));
}
private void textBox1_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;
}
}
答案 1 :(得分:0)
您可以通过此简单代码简单地阻止添加非数字字符
if (long.TryParse(TextBox.Text,out long isparsable))
{
// your code to handle numbers
}
else
{
TextBox.Text="Only Numbers Allowed";
TextBox.Focus();
TextBox.SelectAll();
}