【发布时间】:2018-04-18 11:00:06
【问题描述】:
我创建了将网格中的所有文本框格式化为货币的公共 void
我的代码
public void FormatinTextBox()
{
foreach (Control ctrl in MainGrid.Children)
{
if (ctrl.GetType() == typeof(TextBox))
{
double amount = 0.0d;
if (Double.TryParse(((TextBox)ctrl).Text, NumberStyles.Currency, null, out amount))
((TextBox)ctrl).Text = amount.ToString("C");
else
((TextBox)ctrl).Text = String.Empty;
}
}
}
如果我将此代码放入 MainGrid_Loaded 的事件处理程序,它会完美运行。
但我想在每次离开文本框 (lostFocus) 时运行此代码。
我更喜欢在每个文本框上使用 xaml 触发此代码,我不知道是否可以这样做。这是我的文本框之一的 xaml 代码
<TextBox x:Name="Nose" HorizontalAlignment="Left" Height="24" Margin="710,209,0,0" TextWrapping="Wrap"
VerticalAlignment="Top" Width="110" BorderThickness="0,0,0,1" Text="100" LostFocus="Nose_LostFocus"/>
如果不可能,我如何在后台代码上运行此代码
private void Nose_LostFocus(object sender, RoutedEventArgs e)
{
}
【问题讨论】:
-
StringFormat='{}{0:c}'在您的文本框中?这样你就不需要任何后端代码来尝试格式化它。 -
你能描述一下如何以及在哪里放置它吗?
-
@IdanSim 我需要在 Winform 中做类似的事情。你找到解决办法了吗?