ListView.BeginUpdate Método

Definição

Impede que o controle desenhe antes do método EndUpdate() ser chamado.

public:
 void BeginUpdate();
public void BeginUpdate ();
member this.BeginUpdate : unit -> unit
Public Sub BeginUpdate ()

Exemplos

O exemplo de código a seguir demonstra a inicialização de um ListView controle para conter caixas de seleção. Ele também demonstra como usar e métodos BeginUpdate EndUpdate . Para executar este exemplo, cole o código a seguir em um formulário que contém um ListView nome ListView1. Chame o InitializeListView método do construtor ou Load método do formulário.

void InitializeListView()
{
   this->ListView1 = gcnew 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 = System::Drawing::Point( 0, 0 );
   this->ListView1->Size = 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 = gcnew ColumnHeader;
   columnHeader1->Text = "Breakfast Choices";
   columnHeader1->TextAlign = HorizontalAlignment::Left;
   columnHeader1->Width = 146;
   ColumnHeader^ columnHeader2 = gcnew ColumnHeader;
   columnHeader2->Text = "Price Each";
   columnHeader2->TextAlign = HorizontalAlignment::Center;
   columnHeader2->Width = 142;
   this->ListView1->Columns->Add( columnHeader1 );
   this->ListView1->Columns->Add( columnHeader2 );
   array<String^>^foodList = {"Juice","Coffee","Cereal & Milk","Fruit Plate","Toast & Jelly","Bagel & Cream Cheese"};
   array<String^>^foodPrice = {"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 = gcnew 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 );
}
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);
}
Private Sub InitializeListView()
    Me.ListView1 = New System.Windows.Forms.ListView

    ' Set properties such as BackColor, Location and Size
    Me.ListView1.BackColor = System.Drawing.SystemColors.Control
    Me.ListView1.Dock = System.Windows.Forms.DockStyle.Top
    Me.ListView1.Location = New System.Drawing.Point(0, 0)
    Me.ListView1.Size = New System.Drawing.Size(292, 130)
    Me.ListView1.View = System.Windows.Forms.View.Details
    Me.ListView1.HideSelection = False

    ' Allow user to select multiple items.
    Me.ListView1.MultiSelect = True

    ' Show check boxes in the ListView.
    Me.ListView1.CheckBoxes = True

    'Set the column headers and populate the columns.
    ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
    Dim columnHeader1 As New ColumnHeader
    With columnHeader1
        .Text = "Breakfast Choices"
        .TextAlign = HorizontalAlignment.Left
        .Width = 146
    End With
    Dim columnHeader2 As New ColumnHeader
    With columnHeader2
        .Text = "Price Each"
        .TextAlign = HorizontalAlignment.Center
        .Width = 142
    End With
    Me.ListView1.Columns.Add(columnHeader1)
    Me.ListView1.Columns.Add(columnHeader2)
    Dim foodList() As String = New String() {"Juice", "Coffee", _
        "Cereal & Milk", "Fruit Plate", "Toast & Jelly", _
        "Bagel & Cream Cheese"}

    Dim foodPrice() As String = New String() {"1.09", "1.09", "2.19", _
        "2.79", "2.09", "2.69"}
    Dim count As Integer

    ' 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 To foodList.Length - 1
        Dim listItem As New ListViewItem(foodList(count))
        listItem.SubItems.Add(foodPrice(count))
        ListView1.Items.Add(listItem)
    Next

    'Call EndUpdate when you finish adding items to the ListView.
    ListView1.EndUpdate()
    Me.Controls.Add(Me.ListView1)
End Sub

Comentários

A maneira preferida de adicionar vários itens a um ListView é usar o AddRange método do ListView.ListViewItemCollection (acessado por meio da Items propriedade do ListView). Isso permite que você adicione uma matriz de itens à lista em uma única operação. No entanto, se você quiser adicionar itens um de cada vez usando o Add método da ListView.ListViewItemCollection classe, poderá usar o BeginUpdate método para impedir que o controle repinte sempre ListView que um item for adicionado. Quando tiver concluído a tarefa de adicionar itens ao controle, chame o EndUpdate método para habilitar a ListView repintação. Essa forma de adicionar itens pode impedir o ListView desenho cintilado de quando muitos itens estão sendo adicionados ao controle.

Se BeginUpdate for chamado mais de uma vez, EndUpdate deverá ser chamado de um número equivalente de vezes. Até a última chamada para EndUpdate o ListView não será repinto. Além disso, várias chamadas não têm BeginUpdate efeito.

Aplica-se a

Confira também