CheckedListBox, classe
Mise à jour : novembre 2007
Affiche un objet ListBox dans lequel une case à cocher est affichée à gauche de chaque élément.
Assembly : System.Windows.Forms (dans System.Windows.Forms.dll)
[ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] [LookupBindingPropertiesAttribute] public class CheckedListBox : ListBox
/** @attribute ComVisibleAttribute(true) */ /** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ /** @attribute LookupBindingPropertiesAttribute */ public class CheckedListBox extends ListBox
public class CheckedListBox extends ListBox
Ce contrôle affiche une liste d'éléments que l'utilisateur peut parcourir à l'aide du clavier ou de la barre de défilement sur le côté droit du contrôle. L'utilisateur peut placer une case à cocher pour un ou plusieurs éléments à la fois et les éléments activés peuvent être parcourus à l'aide de CheckedListBox.CheckedItemCollection et de CheckedListBox.CheckedIndexCollection.
Pour ajouter des objets à la liste au moment de l'exécution, assignez un tableau de références d'objets avec la méthode AddRange. La liste affiche ensuite la valeur de chaîne par défaut pour chaque objet. Vous pouvez ajouter des éléments individuels à la liste à l'aide de la méthode Add.
L'objet CheckedListBox prend en charge trois états pendant l'énumération CheckState : Checked, Indeterminate et Unchecked. Vous devez définir l'état Indeterminate dans le code parce que l'interface utilisateur pour CheckedListBox ne fournit pas de mécanisme permettant cela.
Si UseTabStops a la valeur true, CheckedListBox reconnaît et développe les caractères de tabulation dans le texte de l'élément, créant des colonnes. Ces taquets de tabulation sont prédéfinis et ne peuvent pas être modifiés. Pour utiliser des taquets de tabulation personnalisés, affectez à UseTabStops la valeur false, affectez à UseCustomTabOffsets la valeur true et ajoutez les valeurs personnalisées à la collection CustomTabOffsets.
Remarque : |
|---|
Si la propriété UseCompatibleTextRendering a la valeur false, la propriété CustomTabOffsets sera ignorée et remplacée par des offsets de tabulation standard. |
La classe CheckedListBox prend en charge les trois collections indexées suivantes :
Collection | Classe d'encapsulation |
|---|---|
Tous les éléments contenus dans le contrôle CheckedListBox. | |
Les éléments activés (y compris les éléments dans l'état indéterminé), qui constituent un sous-ensemble des éléments contenus dans le contrôle CheckedListBox. | |
Index activés, constituant un sous-ensemble des index figurant dans la collection d'éléments. Ces index spécifient des éléments dans un état activé ou indéterminé. |
Les trois tables suivantes sont des exemples des trois collections indexées prises en charge par la classe CheckedListBox.
La première table donne un exemple de la collection d'éléments indexée dans le contrôle (tous les éléments contenus dans le contrôle).
Index | Élément | État d'activation |
|---|---|---|
0 | Objet 1 | |
1 | Objet 2 | |
2 | Objet 3 | |
3 | Objet 4 | |
4 | Objet 5 |
La deuxième table donne un exemple de la collection indexée des éléments activés.
Index | Élément |
|---|---|
0 | Objet 2 |
1 | Objet 4 |
2 | Objet 5 |
La troisième table donne un exemple de collection indexée des index des éléments activés.
Index | Index de l'élément |
|---|---|
0 | 1 |
1 | 3 |
2 | 4 |
Remarque Vous ne pouvez pas lier de données à CheckedListBox. Pour cette opération, utilisez plutôt ComboBox ou ListBox. Pour plus d'informations, consultez Comment : lier un contrôle ComboBox ou ListBox Windows Forms aux données.
L'exemple ci-dessous illustre l'utilisation des méthodes, propriétés et collections d'un objet CheckedListBox : cet exemple est complet et prêt à l'exécution une fois qu'il est copié dans votre projet. Vous pouvez activer et désactiver des éléments, utiliser la zone de texte pour ajouter des éléments et une fois que vous avez cliqué sur le bouton d'enregistrement, désactiver les éléments activés.
namespace WindowsApplication1 { using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO ; public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.CheckedListBox checkedListBox1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.ListBox listBox1; private System.Windows.Forms.Button button3; private System.ComponentModel.Container components; public Form1() { InitializeComponent(); // Sets up the initial objects in the CheckedListBox. string[] myFruit = {"Apples", "Oranges","Tomato"}; checkedListBox1.Items.AddRange(myFruit); // Changes the selection mode from double-click to single click. checkedListBox1.CheckOnClick = true; } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.textBox1 = new System.Windows.Forms.TextBox(); this.checkedListBox1 = new System.Windows.Forms.CheckedListBox(); this.listBox1 = new System.Windows.Forms.ListBox(); this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.textBox1.Location = new System.Drawing.Point(144, 64); this.textBox1.Size = new System.Drawing.Size(128, 20); this.textBox1.TabIndex = 1; this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); this.checkedListBox1.Location = new System.Drawing.Point(16, 64); this.checkedListBox1.Size = new System.Drawing.Size(120, 184); this.checkedListBox1.TabIndex = 0; this.checkedListBox1.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.checkedListBox1_ItemCheck); this.listBox1.Location = new System.Drawing.Point(408, 64); this.listBox1.Size = new System.Drawing.Size(128, 186); this.listBox1.TabIndex = 3; this.button1.Enabled = false; this.button1.Location = new System.Drawing.Point(144, 104); this.button1.Size = new System.Drawing.Size(104, 32); this.button1.TabIndex = 2; this.button1.Text = "Add Fruit"; this.button1.Click += new System.EventHandler(this.button1_Click); this.button2.Enabled = false; this.button2.Location = new System.Drawing.Point(288, 64); this.button2.Size = new System.Drawing.Size(104, 32); this.button2.TabIndex = 2; this.button2.Text = "Show Order"; this.button2.Click += new System.EventHandler(this.button2_Click); this.button3.Enabled = false; this.button3.Location = new System.Drawing.Point(288, 104); this.button3.Size = new System.Drawing.Size(104, 32); this.button3.TabIndex = 2; this.button3.Text = "Save Order"; this.button3.Click += new System.EventHandler(this.button3_Click); this.ClientSize = new System.Drawing.Size(563, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.listBox1, this.button3, this.button2, this.button1, this.textBox1, this.checkedListBox1}); this.Text = "Fruit Order"; } [STAThread] public static void Main(string[] args) { Application.Run(new Form1()); } // Adds the string if the text box has data in it. private void button1_Click(object sender, System.EventArgs e) { if(textBox1.Text != "") { if(checkedListBox1.CheckedItems.Contains(textBox1.Text)== false) checkedListBox1.Items.Add(textBox1.Text,CheckState.Checked); textBox1.Text = ""; } } // Activates or deactivates the Add button. private void textBox1_TextChanged(object sender, System.EventArgs e) { if (textBox1.Text == "") { button1.Enabled = false; } else { button1.Enabled = true; } } // Moves the checked items from the CheckedListBox to the listBox. private void button2_Click(object sender, System.EventArgs e) { listBox1.Items.Clear(); button3.Enabled=false; for (int i=0; i< checkedListBox1.CheckedItems.Count;i++) { listBox1.Items.Add(checkedListBox1.CheckedItems[i]); } if (listBox1.Items.Count>0) button3.Enabled=true; } // Activates the move button if there are checked items. private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { if(e.NewValue==CheckState.Unchecked) { if(checkedListBox1.CheckedItems.Count==1) { button2.Enabled = false; } } else { button2.Enabled = true; } } // Saves the items to a file. private void button3_Click(object sender, System.EventArgs e) { // Insert code to save a file. listBox1.Items.Clear(); IEnumerator myEnumerator; myEnumerator = checkedListBox1.CheckedIndices.GetEnumerator(); int y; while (myEnumerator.MoveNext() != false) { y =(int) myEnumerator.Current; checkedListBox1.SetItemChecked(y, false); } button3.Enabled = false ; } } }
import System.*;
import System.Drawing.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.Windows.Forms.*;
import System.Data.*;
import System.IO.*;
public class Form1 extends System.Windows.Forms.Form
{
private System.Windows.Forms.CheckedListBox checkedListBox1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button3;
private System.ComponentModel.Container components;
public Form1()
{
InitializeComponent();
// Sets up the initial objects in the CheckedListBox.
String myFruit[] = { "Apples", "Oranges", "Tomato" };
checkedListBox1.get_Items().AddRange(myFruit);
// Changes the selection mode from double-click to single click.
checkedListBox1.set_CheckOnClick(true);
} //Form1
protected void Dispose(boolean disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
super.Dispose(disposing);
} //Dispose
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.textBox1 = new System.Windows.Forms.TextBox();
this.checkedListBox1 = new System.Windows.Forms.CheckedListBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.textBox1.set_Location(new System.Drawing.Point(144, 64));
this.textBox1.set_Size(new System.Drawing.Size(128, 20));
this.textBox1.set_TabIndex(1);
this.textBox1.add_TextChanged(new System.EventHandler(
this.textBox1_TextChanged));
this.checkedListBox1.set_Location(new System.Drawing.Point(16, 64));
this.checkedListBox1.set_Size(new System.Drawing.Size(120, 184));
this.checkedListBox1.set_TabIndex(0);
this.checkedListBox1.add_ItemCheck(
new System.Windows.Forms.ItemCheckEventHandler(
this.checkedListBox1_ItemCheck));
this.listBox1.set_Location(new System.Drawing.Point(408, 64));
this.listBox1.set_Size(new System.Drawing.Size(128, 186));
this.listBox1.set_TabIndex(3);
this.button1.set_Enabled(false);
this.button1.set_Location(new System.Drawing.Point(144, 104));
this.button1.set_Size(new System.Drawing.Size(104, 32));
this.button1.set_TabIndex(2);
this.button1.set_Text("Add Fruit");
this.button1.add_Click(new System.EventHandler(this.button1_Click));
this.button2.set_Enabled(false);
this.button2.set_Location(new System.Drawing.Point(288, 64));
this.button2.set_Size(new System.Drawing.Size(104, 32));
this.button2.set_TabIndex(2);
this.button2.set_Text("Show Order");
this.button2.add_Click(new System.EventHandler(this.button2_Click));
this.button3.set_Enabled(false);
this.button3.set_Location(new System.Drawing.Point(288, 104));
this.button3.set_Size(new System.Drawing.Size(104, 32));
this.button3.set_TabIndex(2);
this.button3.set_Text("Save Order");
this.button3.add_Click(new System.EventHandler(this.button3_Click));
this.set_ClientSize(new System.Drawing.Size(563, 273));
this.get_Controls().AddRange(new System.Windows.Forms.Control[] {
this.listBox1, this.button3, this.button2, this.button1,
this.textBox1, this.checkedListBox1});
this.set_Text("Fruit Order");
} //InitializeComponent
/** @attribute STAThread()
*/
public static void main(String[] args)
{
Application.Run(new Form1());
} //main
// Adds the string if the text box has data in it.
private void button1_Click(Object sender, System.EventArgs e)
{
if (!textBox1.get_Text().Equals("")) {
if (checkedListBox1.get_CheckedItems().Contains(textBox1.get_Text())
== false) {
checkedListBox1.get_Items().Add(textBox1.get_Text(),
CheckState.Checked);
}
textBox1.set_Text("");
}
} //button1_Click
// Activates or deactivates the Add button.
private void textBox1_TextChanged(Object sender, System.EventArgs e)
{
if (textBox1.get_Text().Equals("")) {
button1.set_Enabled(false);
}
else {
button1.set_Enabled(true);
}
} //textBox1_TextChanged
// Moves the checked items from the CheckedListBox to the listBox.
private void button2_Click(Object sender, System.EventArgs e)
{
listBox1.get_Items().Clear();
button3.set_Enabled(false);
for (int i = 0; i < checkedListBox1.get_CheckedItems().get_Count();
i++) {
listBox1.get_Items().Add(
checkedListBox1.get_CheckedItems().get_Item(i));
}
if (listBox1.get_Items().get_Count() > 0) {
button3.set_Enabled(true);
}
} //button2_Click
// Activates the move button if there are checked items.
private void checkedListBox1_ItemCheck(Object sender, ItemCheckEventArgs e)
{
if (e.get_NewValue().Equals(CheckState.Unchecked)) {
if (checkedListBox1.get_CheckedItems().get_Count() == 1) {
button2.set_Enabled(false);
}
}
else {
button2.set_Enabled(true);
}
} //checkedListBox1_ItemCheck
// Saves the items to a file.
private void button3_Click(Object sender, System.EventArgs e)
{
// Insert code to save a file.
listBox1.get_Items().Clear();
IEnumerator myEnumerator;
myEnumerator = checkedListBox1.get_CheckedIndices().GetEnumerator();
int y;
while ((myEnumerator.MoveNext() != false)) {
y = (int)(System.Convert.ToInt32(myEnumerator.get_Current()));
checkedListBox1.SetItemChecked(y, false);
}
button3.set_Enabled(false);
} //button3_Click
} //Form1
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ListControl
System.Windows.Forms.ListBox
System.Windows.Forms.CheckedListBox
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Remarque :