編輯:請參考下面的代碼,我相信會更接近你的方法,並應該解決你的問題..我相信你的問題在於兩個不同的部分。您正在嘗試在可見性變量的位置使用isEnabled變量,我認爲它更適合該任務。你也試圖在兩種不同的變量類型之間使用等效運算符(等於),因爲從勾號或未勾選的框輸出的結果不是布爾輸出,至少不是我見過的WPF。
private void Microsoft_CheckStateChanged(object sender, EventArgs e)
{
var resultFromCheckBox = sender as CheckBox; // This line acts as a link between the check box (i.e. Microsoft) and this function so you can use resultFromCheckBox instead of Microsoft.
if (resultFromCheckBox.CheckState == CheckState.Checked)
{
comboBox_Copy.Visibility = System.Windows.Visibility.Visible; // Sets box to visible if checkbox is selected
}
else
{
comboBox_Copy.Visibility = System.Windows.Visibility.Hidden; // Sets to hidden in all other cases i.e. when it is not selected.
}
}
以前的答案:
你已經證明至少在Windows窗體中的代碼,我確信它是在WPF類似,將使控制變得活躍(可與之交互) 。可見性變量可能更有用。
我相信你正在尋找的代碼是沿着以下線的東西:
private void Microsoft_CheckStateChanged(object sender, EventArgs e)
{
if (comboBox_Copy.Visibility != System.Windows.Visibility.Visible)
{
comboBox_Copy.Visibility = System.Windows.Visibility.Visible;
}
else
{
comboBox_Copy.Visibility = System.Windows.Visibility.Hidden;
}
}
的visability屬性顯示或隱藏有問題的盒子。我只是根據盒子是否可見或不在首位進行了替換。您可以交替使用事件參數來檢查是否選中了複選框並以此方式進行響應。
希望它有幫助。