大家好,我前面有一个单选按钮和文本框,一旦我检查了按钮,文本框就会变得可见!
但我也希望我的光标在文本框中可见,以便用户更容易输入 \ 我该怎么做?!
这就是我的功能
private void SelectQualityChecked(object sender, RoutedEventArgs e)
{
txtSelectedQuantity.IsEnabled = true;
}
大家好,我前面有一个单选按钮和文本框,一旦我检查了按钮,文本框就会变得可见!
但我也希望我的光标在文本框中可见,以便用户更容易输入 \ 我该怎么做?!
这就是我的功能
private void SelectQualityChecked(object sender, RoutedEventArgs e)
{
txtSelectedQuantity.IsEnabled = true;
}
您可以在 Xaml 中完成这一切。不需要后面的代码。
首先将属性绑定到RadioButton
IsChecked
属性上TextBox
IsEnabled
,然后使用Trigger
on TextBox
IsEnabled
true 将焦点设置在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>
试试这个代码:
private void checkBox1_Checked(object sender, RoutedEventArgs e)
{
textBox1.IsEnabled = true;
textBox1.Focus();
}
private void checkBox1_Unchecked(object sender, RoutedEventArgs e)
{
textBox1.IsEnabled = false;
}
尝试添加这个。我认为您应该在复选框单击事件之后传递布尔值
private void SelectQualityChecked(object sender, RoutedEventArgs e)
{
txtSelectedQuantity.IsEnabled = SelectQuality.Checked;
txtSelectedQuantity.Focusable = SelectQuality.Checked;
if(SelectQuality.Checked)
{
txtSelectedQuantity.Focus();
}
}
试试这个代码:
private void radioButton1_Checked(object sender, RoutedEventArgs e)
{
textBox1.Visibility = System.Windows.Visibility.Visible;
textBox1.Focus();
}