ListView.BeginUpdate Méthode

Définition

Empêche le contrôle de redessiner tant que la méthode EndUpdate() n'est pas appelée.

public void BeginUpdate ();

Exemples

L’exemple de code suivant illustre l’initialisation d’un ListView contrôle pour qu’il contienne des cases à cocher. Il montre également comment utiliser les BeginUpdate méthodes et .EndUpdate Pour exécuter cet exemple, collez le code suivant dans un formulaire qui contient un ListView nommé ListView1. Appelez la InitializeListView méthode à partir du constructeur ou Load de la méthode du formulaire.

private void InitializeListView()
{
    this.ListView1 = new System.Windows.Forms.ListView();

    // Set properties such as BackColor and DockStyle and Location.
    this.ListView1.BackColor = System.Drawing.SystemColors.Control;
    this.ListView1.Dock = System.Windows.Forms.DockStyle.Top;
    this.ListView1.Location = new System.Drawing.Point(0, 0);
    this.ListView1.Size = new System.Drawing.Size(292, 130);
    this.ListView1.View = System.Windows.Forms.View.Details;
    this.ListView1.HideSelection = false;

    // Allow the user to select multiple items.
    this.ListView1.MultiSelect = true;

    // Show CheckBoxes in the ListView.
    this.ListView1.CheckBoxes = true;
    
    //Set the column headers and populate the columns.
    ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
    
    ColumnHeader columnHeader1 = new ColumnHeader();
    columnHeader1.Text = "Breakfast Choices";
    columnHeader1.TextAlign = HorizontalAlignment.Left;
    columnHeader1.Width = 146;

    ColumnHeader columnHeader2 = new ColumnHeader();
    columnHeader2.Text = "Price Each";
    columnHeader2.TextAlign = HorizontalAlignment.Center;
    columnHeader2.Width = 142;

    this.ListView1.Columns.Add(columnHeader1);
    this.ListView1.Columns.Add(columnHeader2);

    string[] foodList = new string[]{"Juice", "Coffee", 
        "Cereal & Milk", "Fruit Plate", "Toast & Jelly", 
        "Bagel & Cream Cheese"};

    string[] foodPrice = new string[]{"1.09", "1.09", "2.19", 
        "2.79", "2.09", "2.69"};
    
    int count;

    // Members are added one at a time, so call BeginUpdate to ensure 
    // the list is painted only once, rather than as each list item is added.
    ListView1.BeginUpdate();

    for(count = 0; count < foodList.Length; count++)
    {
        ListViewItem listItem = new ListViewItem(foodList[count]);
        listItem.SubItems.Add(foodPrice[count]);
        ListView1.Items.Add(listItem);
    }

    //Call EndUpdate when you finish adding items to the ListView.
    ListView1.EndUpdate();
    this.Controls.Add(this.ListView1);
}

Remarques

La meilleure façon d’ajouter plusieurs éléments à un ListView consiste à utiliser la AddRange méthode du ListView.ListViewItemCollection (accessible via la Items propriété du ListView). Cela vous permet d’ajouter un tableau d’éléments à la liste en une seule opération. Toutefois, si vous souhaitez ajouter des éléments un par un à l’aide de la Add méthode de la ListView.ListViewItemCollection classe , vous pouvez utiliser la BeginUpdate méthode pour empêcher le contrôle de repeindre le ListView chaque fois qu’un élément est ajouté. Une fois que vous avez terminé la tâche d’ajout d’éléments au contrôle, appelez la EndUpdate méthode pour permettre au ListView repeint. Cette façon d’ajouter des éléments peut empêcher le ListView dessin scintillant du lorsque de nombreux éléments sont ajoutés au contrôle.

Si BeginUpdate est appelé plusieurs fois, EndUpdate doit être appelé un nombre équivalent de fois. Jusqu’au dernier appel au EndUpdateListView ne repeint pas. En dehors de cela, plusieurs appels n’ont BeginUpdate aucun effet.

S’applique à

Produit Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi