2012-10-30 20 views
3

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

我没有使用它下面的代码

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

我需要做的是,要禁用文本框时,复选框被运行时未检查。

这样做的任何想法?

+0

是什么RoutedEventArgs? – andy

+1

Winforms? ASP? WPF? – Kek

回答

10

读您的文章和评论,我会想你正在做WPF或Silverlight。 然后,在这种情况下,你可以做到这一切的XAML:

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

然后,你需要创建转换器。这可以通过在这里阅读后做:How to bind inverse boolean properties in WPF?

希望它有助于

+0

伟大。这工作。谢谢:) – Zarco

5

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

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

您使用的是标准的.NET TextBoxCheckBox控制?

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

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

我在.Net方面经验不足。对于文本框没有“启用”方法。只有“IsEnabled”方法。 :( – Zarco

+0

然后尝试与'IsEnabled'和'IsChecked' - 它应该工作,如果他们不是只读属性。 – davenewza

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

OR

private void checkTime_Checked(object sender, RoutedEventArgs e) 
{ 
    txtTime_SR.IsEnabled = checkTime.IsChecked; 
} 
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; 
    } 
0

更简单

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

相关问题