Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 输入框显示美元金额_C#_Wpf_String_Format - Fatal编程技术网

C# 输入框显示美元金额

C# 输入框显示美元金额,c#,wpf,string,format,C#,Wpf,String,Format,我有一个按钮和一个文本块。现在我想使用这个numpad来输入dollart数量并在textblock中显示它。例如,如果我按顺序按1234。文本块应显示12.34。如何在c中执行此操作?我在网上读了很多例子,但我没有发现任何一个符合我的情况 <Grid x:Name="Numpad"> <Grid.ColumnDefinitions> <ColumnDefinition/> <

我有一个按钮和一个文本块。现在我想使用这个numpad来输入dollart数量并在textblock中显示它。例如,如果我按顺序按1234。文本块应显示12.34。如何在c中执行此操作?我在网上读了很多例子,但我没有发现任何一个符合我的情况

        <Grid x:Name="Numpad">
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <!--buttons Row-->
        <Button x:Name="popup_ClrBtn" Grid.Row="0" Content="Clear" FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="ClrBtn_Click"/>
        <Button x:Name="popup_AcptBtn" Grid.Row="0" Grid.Column="2" Content="Accpet" FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold"/>
        <!--Keyboard grid-->
        <!--first row of buttons-->
        <Button x:Name="btn7" Grid.Column="0" Grid.Row="1" Content="7" HorizontalAlignment="Stretch"  FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click"/>
        <Button x:Name="btn8" Grid.Column="1" Grid.Row="1" Content="8" HorizontalAlignment="Stretch"  FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click" />
        <Button x:Name="btn9" Grid.Column="2" Grid.Row="1" Content="9" HorizontalAlignment="Stretch"  FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click" />
        <!--Second row of buttons-->
        <Button x:Name="btn4" Grid.Column="0" Grid.Row="2" Content="4" HorizontalAlignment="Stretch"  FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click"/>
        <Button x:Name="btn5" Grid.Column="1" Grid.Row="2" Content="5" HorizontalAlignment="Stretch"  FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click" />
        <Button x:Name="btn6" Grid.Column="2" Grid.Row="2" Content="6" HorizontalAlignment="Stretch" FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click" />
        <!--Third row of buttons-->
        <Button x:Name="btn1" Grid.Column="0" Grid.Row="3" Content="1" HorizontalAlignment="Stretch" FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click"/>
        <Button x:Name="btn2" Grid.Column="1" Grid.Row="3" Content="2" HorizontalAlignment="Stretch"  FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold"  Click="numpad_Click" />
        <Button x:Name="btn3" Grid.Column="2" Grid.Row="3" Content="3" HorizontalAlignment="Stretch" FontFamily="Times New Roman" Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click" />
        <!--Last row of buttons-->
        <Button x:Name="btn0" Grid.Column="0" Grid.Row="4" Content="0" HorizontalAlignment="Stretch" FontFamily="Times New Roman"  Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click"/>
        <Button x:Name="btn00" Grid.Column="1" Grid.Row="4" Content="00" HorizontalAlignment="Stretch" FontFamily="Times New Roman"  Margin="2" FontSize="15" FontWeight="Bold" Click="numpad_Click" />
        <Button x:Name="CancelBtn" Grid.Column="2" Grid.Row="4" Content="Cancel" HorizontalAlignment="Stretch" FontFamily="Times New Roman"  Margin="2" FontSize="15" FontWeight="Bold" Click="CancelBtn_Click" Background="#FFF70B0B" />
        <Label x:Name="amountlbl" Grid.Row="5">Amount:</Label>
        <TextBlock x:Name="amountTb" Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2"></TextBlock>
    </Grid>
将TextChanged事件处理程序添加到文本框:


您好,欢迎来到StackOverflow!请提供你的问题的答案。我们在SO希望帮助您,但我们不是一个代码编写服务。尝试编写解决方案后,请使用您的代码编辑您的帖子。共享此屏幕的xaml。您好,感谢您的快速回复。我想我说的不是很清楚。点应插入最后2位之前。通过你的解决方案。它是在前两位数字后追加的。@CZA请检查我的编辑,您可以根据需要随时更改它。答案只是为了你们的指导,只有你们知道你们的要求!再次感谢你的帮助。我已经根据自己的情况找到了最好的解决方案。我可以把它转换成十进制,再除以100,你的解也很有价值!
<TextBox Grid.Row="0" Margin="10" TextChanged="TextBox_TextChanged" />
private bool suppressTextChanged = false;
private void TextBox_TextChanged(Object sender, TextChangedEventArgs e)
{
    int caretIndex = textBox.CaretIndex;
    string text = textBox.Text;
    int value;
    if (int.TryParse(text, out value))
    {
        int insertPos = text.Length - 2;
        if (insertPos > 0)
        {
            text = text.Insert(insertPos, ".");

            suppressTextChanged = true;
            textBox.Text = text;
            if (caretIndex >= insertPos)
                caretIndex++;
            textBox.CaretIndex = caretIndex;
            suppressTextChanged = false;
        }
    }
}