【问题标题】:Focus textbox after checking checkbox选中复选框后聚焦文本框
【发布时间】:2014-11-18 21:46:08
【问题描述】:

那是我的 xaml:

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

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

如果用户选中复选框,文本框应该被聚焦并且内容应该被标记。 我该怎么做?

【问题讨论】:

    标签: c# .net wpf xaml checkbox


    【解决方案1】:

    你可以这样做是从你的复选框中选中的事件

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

    【讨论】:

      【解决方案2】:

      将您的控件包含在父容器中,例如网格,并触发数据触发器以设置焦点元素。

          <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>        
      

      【讨论】:

        【解决方案3】:

        在 XAML 中为复选框添加事件

        <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
             }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-03
          • 1970-01-01
          • 2011-03-31
          • 2018-01-21
          • 1970-01-01
          • 2010-10-06
          • 2021-05-27
          • 1970-01-01
          相关资源
          最近更新 更多