如何使用带有两个小数点的WPF编号文本框,例如:
它将以0.00开头,当用户键入1时,该值将为0.01,接下来当用户用户键入2时,该值将为0.21。
当用户键入5003时,该值为30.05。
揍你。
答案 0 :(得分:4)
当然,您可以随时将@JesseJames实施一个。但是,我建议你更好地使用现有的,我相信Extended WPF Toolkit就是你需要的,正是IntegerUpDown(你可以指定你需要的面具,它附带5) :
<xctk:IntegerUpDown FormatString="N0" Value="1" Increment="1" Maximum="100"/>
答案 1 :(得分:-1)
您可以在KeyDown事件处理程序中实现它。设置事件参数属性e.Handle = true
并计算输出数。
不要像我一样写,这只是一个例子:))
public partial class MainWindow : Window
{
private StringBuilder sb = new StringBuilder();
public MainWindow()
{
InitializeComponent();
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
e.Handled = true;
switch (e.Key)
{
case Key.D0: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 0); break; }
case Key.D1: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 1); break; }
case Key.D2: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 2); break; }
case Key.D3: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 3); break; }
case Key.D4: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 4); break; }
case Key.D5: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 5); break; }
case Key.D6: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 6); break; }
case Key.D7: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 7); break; }
case Key.D8: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 8); break; }
case Key.D9: { if (sb.Length == 2) sb.Insert(0, ','); sb.Insert(0, 9); break; }
}
textBox1.Text = sb.ToString();
}
}
在此示例中,您还需要处理“退格”命中以清除StringBuilder。要获取该值,请使用解析器:double result = double.Parse(sb.ToString());
+处理NumPad号码!