/// <summary> /// Ajoute un item à la liste des valeurs /// </summary> /// <param name="item">ietm à ajouter</param> /// <returns>l'item ajouté</returns> public EnumFlagsCheckedListBoxItem Add( EnumFlagsCheckedListBoxItem item ) { Items.Add( item ); return item; }
/// <summary> /// Retourne true si cette valeur est un membre de la valeur composite /// </summary> /// <param name="composite">valeur composite</param> /// <returns>true si cette valeur est un membre de la valeur composite</returns> public bool IsMemberFlag( EnumFlagsCheckedListBoxItem composite ) { return (IsFlag && ((value & composite.value) == value)); }
/// <summary> /// Ajoute une valeur entière et sa description /// </summary> /// <param name="value">valeur</param> /// <param name="text">description</param> /// <returns>l'item créé et ajouté</returns> public EnumFlagsCheckedListBoxItem Add( int value, string text ) { EnumFlagsCheckedListBoxItem item = new EnumFlagsCheckedListBoxItem( value, text ); Items.Add( item ); return item; }
/// <summary> /// Mise à jour des éléments de la list box /// </summary> /// <param name="composite">item qui vient d'être modifié</param> /// <param name="checkState">état coché ou non de l'item</param> protected void UpdateCheckedItems( EnumFlagsCheckedListBoxItem composite, CheckState checkState ) { // appeler directement si la valeur est 0 if ( composite.value == 0 ) UpdateCheckedItems( 0 ); // obtenir la valeur déterminée par tous les items cochés int sum = GetCurrentValue(); // combiner ou effacer les bits de l'item modifié if ( checkState == CheckState.Unchecked ) sum = sum & (~composite.value); else sum |= composite.value; // mettre à jour tous les items en fonction de la valeur obtenue UpdateCheckedItems( sum ); }