5

我有一个复选框和一个文本框。在运行时,
如果 CheckBox 被选中,则 TextBox 被启用。

我使用以下代码做到了

private void checkTime_Checked(object sender, RoutedEventArgs e)
{
    if (checkTime.IsChecked == true)
    {
        txtTime_SR.IsEnabled = true;
    }
}

我需要做的是,在运行时未选中 CheckBox 时禁用 TextBox。

有这样做的想法吗?

4

5 回答 5

11

阅读您的帖子和评论,我猜您正在使用 WPF 或 silverlight。然后,在这种情况下,您可以在 XAML 中完成所有操作:

<CheckBox x:Name="checkTime" />
<TextBox x:Name="txtTime_SR" IsEnabled="{Binding IsChecked, ElementName=checkTime, Converter={StaticResource NotConverter}, Mode=OneWay}"/>

然后,您需要创建转换器。这可以通过阅读此处的帖子来完成:如何在 WPF 中绑定逆布尔属性?

希望能帮助到你

于 2012-10-30T08:44:12.867 回答
5

如果我理解,您希望在选中复选框时启用文本框,并在取消选中复选框时禁用它?

private void checkTime_Checked(object sender, RoutedEventArgs e)
{
    txtTime_SR.Enabled = checkTime.Checked;
}

您使用的是标准的 .NETTextBoxCheckBox控件吗?

编辑:好的,所以它是 WPF。做这个:

private void checkTime_Checked(object sender, RoutedEventArgs e)
{
    txtTime_SR.IsEnabled = checkTime.IsChecked;
}
于 2012-10-30T08:32:38.587 回答
1

更简单

<CheckBox Content="Include the following..." IsChecked="{Binding IncludeMyItems}" Name="checkBox_includeMyItems" />
<TextBox Name="myItems" Text="{Binding MyItems}" Height="23" Width="165" IsEnabled="{Binding IsChecked, ElementName=checkBox_includeMyItems}" />

于 2015-02-18T21:35:57.703 回答
0
private void checkTime_Checked(object sender, RoutedEventArgs e)
{
 txtTime_SR.Enabled = checkTime.Checked;
}

或者

private void checkTime_Checked(object sender, RoutedEventArgs e)
{
    txtTime_SR.IsEnabled = checkTime.IsChecked;
}
于 2012-10-30T08:34:43.107 回答
0

我知道这是一个旧帖子,但是这应该可以。使用 Checked/Unchecked 事件。

   private void checkbox_otherflag_Unchecked(object sender, RoutedEventArgs e)
    {
        this.textbox_otherflagtext.IsEnabled = false;
    }

    private void checkbox_otherflag_Checked(object sender, RoutedEventArgs e)
    {
        this.textbox_otherflagtext.IsEnabled = true;
    }
于 2013-10-23T12:13:56.217 回答