选中后复选文本框复选框

时间:2014-11-18 10:10:47

标签: c# .net wpf xaml checkbox

那是我的xaml:

<CheckBox Content="Length" IsChecked="{Binding Path=MessageLengthChecked}" x:Name="LengthCheckBox"/>

<TextBox x:Name="LengthTextBox" Text="{Binding Length}" IsEnabled="{Binding ElementName=LengthCheckBox, Path=IsChecked}"/>

如果用户选中该复选框,则应该关注文本框并标记内容。 我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

您可以执行此操作,即复选框中的已检查事件

 LengthTextBox.Focus();
 LengthTextBox.SelectAll();

答案 1 :(得分:0)

将控件包含在父容器中,比如网格,然后触发数据触发器来设置聚焦元素。

    <Grid>
       <Grid.Style>
          <Style>
             <Style.Triggers>
                 <DataTrigger Binding="{Binding MessageLengthChecked}" Value="True">
                     <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=LengthTextBox}"/>
                 </DataTrigger>
             </Style.Triggers>
          </Style>
      </Grid.Style>

      <CheckBox Content="Length" IsChecked="{Binding Path=MessageLengthChecked}" x:Name="LengthCheckBox"/>

      <TextBox x:Name="LengthTextBox" Text="{Binding Length}" IsEnabled="{Binding ElementName=LengthCheckBox, Path=IsChecked}"/>

    </Grid>        

答案 2 :(得分:0)

在XAML中为checkBox添加偶数

<CheckBox Content="CheckBox"  Name="myCheckBox"  Checked="myCheckBox_Checked" />

通过c#代码试试这个:

private void myCheckBox_Checked(object sender, RoutedEventArgs e)
{
     if (((CheckBox)sender).IsChecked == true)
     {
           myTextBox.Focus();
           myTextBox.SelectAll();
     }
     else
     {
           //TODO
     }
}