2012-10-30 21 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}" />

相關問題