【问题标题】:Disable text box when Check box is Unchecked during run time in C#在 C# 中的运行时未选中复选框时禁用文本框
【发布时间】:2012-10-19 13:41:46
【问题描述】:

我有一个 CheckBox 和一个 TextBox。在运行时,
如果 CheckBox 已选中,则启用 TextBox。

我用下面的代码做到了

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

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

有这样做的想法吗?

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

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

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

    【讨论】:

    • 我在 .Net 方面的经验并不丰富。对于文本框,没有“启用”方法。只有“IsEnabled”方法。 :(
    • 然后尝试使用 IsEnabledIsChecked - 如果它们不是只读属性,它应该可以工作。
    【解决方案2】:
    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;
    }
    

    【讨论】:

      【解决方案3】:

      阅读您的帖子和 cmets,我猜您正在使用 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?

      希望对你有帮助

      【讨论】:

        【解决方案4】:

        我知道这是一篇旧帖子,但这应该可以。使用 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;
            }
        

        【讨论】:

          【解决方案5】:

          更简单

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多