0

大家好,我前面有一个单选按钮和文本框,一旦我检查了按钮,文本框就会变得可见!

但我也希望我的光标在文本框中可见,以便用户更容易输入 \ 我该怎么做?!

这就是我的功能

   private void SelectQualityChecked(object sender, RoutedEventArgs e)
    {
        txtSelectedQuantity.IsEnabled = true;

    }
4

4 回答 4

3

您可以在 Xaml 中完成这一切。不需要后面的代码。

首先将属性绑定到RadioButton IsChecked属性上TextBox IsEnabled,然后使用Triggeron TextBox IsEnabledtrue 将焦点设置在TextBox使用FocusManager.FocusedElement属性上。

例子:

<Window x:Class="WpfApplication13.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" Name="UI">
    <Grid>
        <StackPanel>
            <RadioButton x:Name="radioBtn" Content="Click me!"  />
            <TextBox x:Name="txtbox" IsEnabled="{Binding ElementName=radioBtn, Path=IsChecked}">
                <TextBox.Style>
                    <Style TargetType="{x:Type TextBox}">
                        <Style.Triggers>
                            <Trigger Property="IsEnabled" Value="True">
                                <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=txtbox}"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </TextBox.Style>
            </TextBox>
        </StackPanel>
    </Grid>
</Window>
于 2013-01-30T05:08:33.403 回答
2

试试这个代码:

        private void checkBox1_Checked(object sender, RoutedEventArgs e)
        {
          textBox1.IsEnabled = true;
          textBox1.Focus();
        } 

        private void checkBox1_Unchecked(object sender, RoutedEventArgs e)
        {
            textBox1.IsEnabled = false;
        }
于 2013-01-30T05:25:02.707 回答
1

尝试添加这个。我认为您应该在复选框单击事件之后传递布尔值

   private void SelectQualityChecked(object sender, RoutedEventArgs e)
    {
        txtSelectedQuantity.IsEnabled = SelectQuality.Checked;
        txtSelectedQuantity.Focusable = SelectQuality.Checked;
        if(SelectQuality.Checked)
        {
            txtSelectedQuantity.Focus();
        }
    }
于 2013-01-30T05:01:08.583 回答
1

试试这个代码:

private void radioButton1_Checked(object sender, RoutedEventArgs e)
    {
        textBox1.Visibility = System.Windows.Visibility.Visible;
        textBox1.Focus();
    }
于 2013-01-30T05:01:24.790 回答