1.数据输入事件采集
事件判断:
public static bool isInputNumber(KeyEventArgs e)
{
if ((e.Key >= Key.D0 && e.Key <= Key.D9) || (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) ||
e.Key == Key.Delete || e.Key == Key.Back || e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.OemPeriod|| e.Key == Key.Subtract||e.Key== Key.Decimal)
{
//按下了Alt、ctrl、shift等修饰键
if (e.KeyboardDevice.Modifiers != ModifierKeys.None)
{
e.Handled = true;
}
else
{
return true;
}
}
else//按下了字符等其它功能键
{
e.Handled = true;
}
return false;
}
2 事件导入判断
/// <summary>
///输入数字
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PinputNos(object sender, KeyEventArgs e)
{
if (! isInputNumber(e))
{
MessageBox.Show("请输入数字!");
}
}
3 如果是小数输入小数点, TextBox属性操作
需要加入小数 字符判断:
如果使用了StringFormat或自定义转换器,请检查其是否正确处理小数点。确保绑定的控件(如TextBox)允许输入小数点。
wpf 绑定 输入小数点不显示
在WPF中,如果你遇到绑定输入小数点不显示的问题,可能是因为绑定的数据类型不是double或float等数值类型,或者是因为绑定的控件(比如TextBox)的数据模板中有自定义的转换器或者格式设置导致小数点不显示。
解决方法:
确保绑定的源属性是数值类型(如double或float)。
如果使用了StringFormat或自定义转换器,请检查其是否正确处理小数点。
确保绑定的控件(如TextBox)允许输入小数点。
示例代码:
XAML部分:
<Window x:Class="WpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBox Text="{Binding Path=DecimalValue, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:N2}}" Width="100" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
</Window>
绑定属性即可。
添加以下操作
PreviewKeyDown="PinputNos"
如果遇上修改了数据类型以后依然无法输入小数点
就没有办法了,只能将绑定的参数修改成string 类型
创建修改下原来的属性类似于如下操作:
/// <summary>
/// 外径最小值
/// </summary>
public string WaijingMinStr { get; set; } = "0";
public decimal WaijingMin
{
set
{
WaijingMinStr = value.ToString();
}
get
{
return Convert.ToDecimal(WaijingMinStr);
}
}