0
我希望用户输入运费数据作为美国货币金额(如23.45美元)。他们将进入23.45在RadWatermarkTextbox中将数据格式化为货币
如果设置为RadWatermarkTextbox,23.45不能在没有准备通这些步骤中输入: '#00'
1) Enter 23
2) Use the arrow key to navigate to the cents (skip over the decimal point)
3) Enter 45 (.00 shifts over to the right making it look like $23.45.00)
4) Delete the .00
我改变了格式的StringFormat =,的StringFormat = F2,和没有字符串格式。这些并没有解决问题。
我在网上发现了这个建议,但不能输入小数点。所有可以进入是FreightRate 2345
Private Sub txtDefaultFreightRate_PreviewTextInput(sender As Object, e As TextCompositionEventArgs) Handles txtDefaultFreightRate.PreviewTextInput
Dim regex As New Regex("^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$")
e.Handled = Not regex.IsMatch(TryCast(sender, System.Windows.Controls.TextBox).Text.Insert(TryCast(sender, System.Windows.Controls.TextBox).SelectionStart, e.Text))
For Each ch As Char In e.Text
If Not ([Char].IsDigit(ch) OrElse ch.Equals("."c)) Then
e.Handled = True
End If
Next
End Sub
XAML:
<telerik:RadWatermarkTextBox x:Name="txtDefaultFreightRate"
Margin="0,2,0,0"
Text="{Binding defaultFreightRate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat='{}{0:C2}'}"
<telerik:RadWatermarkTextBox.WatermarkContent>
<TextBlock Text="Enter in format $$$.$$ " FontSize="12" Foreground="#969696" />
</telerik:RadWatermarkTextBox.WatermarkContent>
</telerik:RadWatermarkTextBox>
如果换成一个WPF文本框,然后输入数据作为货币按预期工作。 XAML为此:
<TextBox Text="{Binding defaultFreightRate, Mode=TwoWay, StringFormat='{}{0:C2}'}" Width="100" Height="25" />
难道不能在RadWatermarkTextBox中将数据输入格式化为金钱吗?关于这一点,我在网上找不到很多。我认为格式化将与常规文本框相同。
感谢
感谢。这解决了这个问题。 – EManning