2012-08-09 24 views
2
private void checkBox1_Checked(object sender, RoutedEventArgs e) 
{ 
    if (checkBox1.IsChecked == false) 
    { 
     grid1.Visibility = System.Windows.Visibility.Hidden; 
    } 

    if (checkBox1.IsChecked == true) 
    { 
     grid1.Visibility = Visibility; 
    } 

} 

爲什麼grid1.Visibility = System.Windows.Visibility.Hidden;不工作,電網不是隱藏複選框,==器isChecked假不行

+1

你的問題標題是關於'==器isChecked不FALSE'工作,但是你的問題是關於' grid1.Visibility'不工作?這是什麼?你通過你的代碼? – 2012-08-09 09:52:05

+0

嘗試使用checkBox1.Checked == false而不是IsChecked – Skami 2012-08-09 09:55:00

回答

5

您處理Checked事件,這隻有當複選框被選中時,而不是當它處於未選中狀態。爲了解決這個問題,處理Unchecked event還有:

private void checkBox1_Checked(object sender, RoutedEventArgs e) 
{ 
    grid1.Visibility = System.Windows.Visibility.Visible; 
} 

private void checkBox1_Unchecked(object sender, RoutedEventArgs e) 
{ 
    grid1.Visibility = System.Windows.Visibility.Hidden; 
} 
-1
private void checkBox1_CheckStateChanged(object sender, RoutedEventArgs e) 
    { 
     if (checkBox1.Checked) 
     { 
      grid1.Visibility = System.Windows.Visibility.Hidden; 
     }else 
     { 
      grid1.Visibility = System.Windows.Visibility.Visible; 
     } 

    } 

有沒有這樣的財產器isChecked。

+0

爲什麼這會降低投票率? – DaveHogan 2012-08-09 10:02:12

+0

Plz ask downvoter .... – perilbrain 2012-08-09 10:02:54

+0

我不是downvoter,但我想這是因爲在WPF中沒有'CheckStateChanged'事件(注意問題的標籤,這不是WinForms)。 – Heinzi 2012-08-09 10:04:21

2

使用Unchecked事件在複選框未被選中時將被通知。

0

試試這個,你必須使用倒塌

private void checkBox1_Checked(object sender, RoutedEventArgs e) 
{ 
     grid1.Visibility = System.Windows.Visibility.Visible; 
} 

private void checkBox1_UnChecked(object sender, RoutedEventArgs e) 
{ 

     grid1.Visibility = System.Windows.Visibility.Collapsed; 
} 
0

試試這個代碼

protected void checkBox1_Unchecked(object sender, RoutedEventArgs e) 
{ 
    grid1.Visibility = System.Windows.Visibility.Hidden; 
} 

protected void checkBox1_Checked(object sender, RoutedEventArgs e) 
    { 
    grid1.Visibility = System.Windows.Visibility.Visible; 
    } 
相關問題