Je mettrais ces éléments « indéterminés » dans le code, puis remplacer la propriété « NewValue » de l'événement ItemCheck lorsque l'utilisateur tente de vérifier/les décocher:
public Form1()
{
InitializeComponent();
checkedListBox1.Items.Add("Can't check me", CheckState.Indeterminate);
}
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.CurrentValue == CheckState.Indeterminate)
{
e.NewValue = CheckState.Indeterminate;
}
}
« Can not check me "L'élément dans CheckedListBox ne peut pas être modifié, car chaque fois que l'utilisateur essaie de le cocher/décocher, le gestionnaire d'événements le modifie. Vous ne voyez même pas la mise à jour de l'interface utilisateur en conséquence.
En fait, ce que je pense est quelque chose comme ceci: Nous avons deux listes. L'utilisateur peut sélectionner et ajouter des choses de la liste un à la liste deux. MAIS, je ne veux pas laisser l'utilisateur ajouter le même élément à la deuxième liste pour une deuxième fois. En d'autres termes, la liste 2 devrait être composée d'éléments uniq de list1. – fantoman
Même si vous ne pouvez pas penser à une raison pour laquelle VOUS voudriez un élément non enregistrable dans un CheckedListBox, pouvez-vous imaginer que quelque part, parfois, quelqu'un a une bonne raison pour cela? Certaines personnes préfèrent se conformer. Certaines personnes préfèrent penser en dehors de la boîte. Chaque fois que quelqu'un dit "Pourquoi voudriez-vous faire ça?" Je peux toujours penser aux raisons pour lesquelles ils pourraient. –