2017-10-09 11 views
-1

J'ai regardé autour et j'ai vu des choses liées à Java, mais rien pour C#/WPF. Ce que j'essaie de faire, c'est ce que les questions disent. Par exemple, si "Microsoft" est coché, je veux qu'un Combobox apparaisse dans le second panneau, afin qu'ils puissent sélectionner "Windows", "Xbox" ou autre. J'espère que la question a un sens. J'ai fait du googling mais je suis encore vraiment novice en programmation donc je manque probablement quelque chose de basique. J'ai essayéFaire apparaître un ComboBox lorsqu'une case à cocher est remplie

private void Microsoft_CheckStateChanged(object sender, EventArgs e) 
    { 
     comboBox_Copy.isEnabled = (Microsoft.CheckState == 
    CheckState.Checked); 
    } 

Mais il dit CheckState n'existe pas dans le contexte actuel, ainsi que « combobox ne dispose pas d'une définition pour » permis

Merci pour l'aide!

Répondre

1

EDIT: S'il vous plaît se référer au code ci-dessous qui je crois serait plus proche de votre méthode et devrait résoudre vos problèmes .. Votre problème réside, je crois, dans les deux parties différentes. Vous essayez d'utiliser la variable isEnabled à la place de la variable de visibilité qui, je crois, est mieux adaptée à la tâche. Vous avez également essayé d'utiliser un opérateur d'équivilence (Equals) entre deux types de variables différents, car la sortie d'une case cochée ou décochée n'est pas une sortie booléenne, du moins pas de ce que j'ai vu de 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. 
    } 
} 

Réponse précédente:

Le code que vous avez montré au moins dans Windows Forms, je suis assez sûr qu'il est similaire à WPF, permettrait le contrôle de devenir actif (il peut être interagi avec) . La variable de visibilité pourrait être plus utile.

Je crois que le code que vous recherchez est quelque chose le long des lignes de ce qui suit:

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

La propriété Visability affiche ou masque la boîte en question. Je l'ai juste fait alterner selon si la boîte était visible ou non en premier lieu. Vous pouvez alternativement utiliser les arguments d'événement pour vérifier si la case à cocher est cochée et répondre de cette façon.

Espérons que ça aide.