只有一个" 0"之前"。"在textBox_TextChanged中

时间:2016-04-10 20:08:04

标签: c# winforms textbox textchanged

我怎么能只留下一个" 0"之前"。"?我TextBox只接受数字而你只能写一个" 0"之前"。",但你可以写任何数字,如900或5000。

这是我使用的伪代码:

if (0 > 1 before "." && 0 is first digit) 
{
    Remove all zeros before "." and left one; 
}

3 个答案:

答案 0 :(得分:0)

像这样使用

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:background="#fff">
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:marginTop="20sp"
        android:marginBottom="10sp"
        android:divider="@android:color/transparent"
        android:id="@+id/listview"
        android:padding="5sp"
        android:dividerHeight="5.0sp"
     ></ListView>
    </RelativeLayout>

答案 1 :(得分:0)

继续TextChanged事件有一些缺点。例如,用户可能想要输入零,然后在其前面加上数字(。)符号。您的代码将在输入数字之前删除所有前导零。最好使用其他事件,如Validating或LostFocus。代码很简单:

textbox.Text = textbox.Text.TrimStart('0');

您可以使用NumericUpDown控件进行纯数字输入。它将验证文本是否为数字,并根据DecimalPlaces等设置对其进行格式化。

答案 2 :(得分:0)

也许这个可以提供帮助:

public string ZeroPoint(string a)
{
  int pos = a.IndexOf(".");
  if (pos > -1 && a.Substring(0, pos) == new string('0', pos))
  {
    a = "0" + a.Substring(pos, a.Length - pos);
  }
  return a;
}