Share via


Modo virtual no Windows Forms DataGridView controle

Com o modo virtual, você pode gerenciar a interação entre o DataGridView controle e um cache de dados personalizados. Para implementar o modo virtual, conjunto o VirtualMode propriedade para true e lidar com um ou mais eventos descritos neste tópico. Você normalmente manipulará pelo menos o CellValueNeeded evento, que permite ao controle pesquisam valores no cache de dados.

Modo limite e modo virtual

Modo virtual é necessário somente quando você precisa complementar ou substituir o modo limite.No modo limite, você define o DataSource propriedade e o controle automaticamente carrega os dados da fonte especificada e envia as alterações do usuário a ele. Você pode controlar quais sistema autônomo limite colunas são exibidas e a fonte de dados próprio normalmente alças de operações, sistema autônomo classificação.

Complementando o modo limite

Você pode complementar o modo limite exibindo colunas não acopladas com colunas acopladas.Isso às vezes é chamado de "misto" e é útil para exibir tarefas como controla valores calculados ou interface de usuário (UI).

Como são colunas não-acopladas fora a fonte de dados, elas serão ignoradas pelo operações de classificação da fonte de dados.Portanto, quando você ativa a classificação no modo misto, você deve gerenciar os dados não acoplados em um cache local e implementar o modo virtual para permitir que o DataGridView controle de interagir com ele.

Para obter mais informações sobre como usar o modo virtual para manter os valores nas colunas não acoplados, consulte os exemplos no DataGridViewCheckBoxColumn.ThreeState propriedade e System.Windows.Forms.DataGridViewComboBoxColumn tópicos de referência de classe.

Substituindo o modo limite

Se o modo limite não atender suas necessidades de desempenho, você pode gerenciar todos os dados em um cache personalizado através de manipuladores de eventos de modo virtual.Por exemplo, você pode usar o modo virtual para implementar um just-in-time dados carregando mecanismo recupera somente quantos dados de um banco de dados em rede é necessária para otimizar o desempenho.Esse cenário é particularmente útil ao trabalhar com grandes quantidades de dados em uma conexão de rede lenta ou com máquinas de clientes que tenham uma quantidade limitada de espaço de armazenamento ou RAM.

Para obter mais informações sobre como usar o modo virtual em um cenário just-in-time, consulte Implementando o modo virtual com dados Just-in-time loading in Windows Forms DataGridView controle.

Eventos de modo virtual

Se os dados somente leitura, a CellValueNeeded evento pode ser o único evento que você precisará lidar. Eventos de modo virtual adicionais permitem que você ativar a funcionalidade específica como edições de usuário, linha adição e exclusão e transações de nível de linha.

Alguns padrão DataGridView eventos (sistema autônomo eventos que ocorrem quando sistema autônomo usuários a adicionar ou excluir linhas ou quando valores de célula são editados, analisados, validados ou formatados) são úteis no modo virtual, também. Você também pode tratar de eventos que lhe permitem manter valores não normalmente armazenados em uma fonte de dados vinculados, sistema autônomo texto de dica de ferramenta de célula, célula e texto de erro de linha, célula e linha de dados de menu de atalho e dados da altura da linha.

Para obter mais informações sobre como implementar o modo virtual para gerenciar dados de leitura/gravar com um escopo de confirmar de nível de linha, consulte Demonstra Passo a passo: Implementando o modo virtual no Windows Forms DataGridView controle.

Para obter um exemplo que implementa o modo virtual com um escopo de confirmar de nível de célula, consulte o VirtualMode tópico de referência de propriedade.

Os seguintes eventos ocorrem somente quando o VirtualMode propriedade é conjunto para true.

Evento

Descrição

CellValueNeeded

Usado pelo controle para recuperar um valor de célula do cache de dados para exibição.Esse evento ocorre somente para as células nas colunas não acopladas.

CellValuePushed

Usado pelo controle para confirmar a entrada do usuário para uma célula para o cache de dados.Esse evento ocorre somente para as células nas colunas não acopladas.

telefonar the UpdateCellValue método ao alterar um valor em cache fora de um CellValuePushed manipulador de eventos para garantir que o valor corrente é exibido no controle e aplicar modos qualquer dimensionamento automático correntemente em vigor.

NewRowNeeded

Usado pelo controle para indicar a necessidade de uma nova linha no cache de dados.

RowDirtyStateNeeded

Usado pelo controle para determinar se uma linha tem alterações não confirmadas.

CancelRowEdit

Usado pelo controle para indicar que uma linha deve reverter para seus valores armazenados em cache.

Os seguintes eventos são úteis no modo virtual, mas podem ser usados independentemente do VirtualMode configuração da propriedade.

Eventos

Descrição

UserDeletingRow

UserDeletedRow

RowsRemoved

RowsAdded

Usado pelo controle para indicar quando linhas são excluídas ou adicionados, letting você atualiza o cache de dados de acordo.

CellFormatting

CellParsing

CellValidating

CellValidated

RowValidating

RowValidated

Usado pelo controle aos valores de célula de formato para exibição e para analisar e validar a entrada do usuário.

CellToolTipTextNeeded

Usado pelo controle para recuperar texto de dica de ferramenta da célula quando o DataSource propriedade é conjunto ou o VirtualMode propriedade é true.

Célula ToolTips serão exibidas somente quando o ShowCellToolTips valor da propriedade é true.

CellErrorTextNeeded

RowErrorTextNeeded

Usado pelo controle para recuperar texto de erro de célula ou linha quando o DataSource propriedade é conjunto ou o VirtualMode propriedade é true.

telefonar the UpdateCellErrorText método ou a UpdateRowErrorText método quando você altera o texto de erro de célula ou linha para garantir que o valor corrente é exibido no controle.

Glifos de erro de célula e linha são exibidos quando o ShowCellErrors e ShowRowErrors valores de propriedade são true.

CellContextMenuStripNeeded

RowContextMenuStripNeeded

Usado pelo controle para recuperar uma célula ou linha ContextMenuStrip Quando o controle DataSource propriedade é definida ou a VirtualMode propriedade é true.

RowHeightInfoNeeded

RowHeightInfoPushed

Usado pelo controle para recuperar ou armazenar informações de altura de linha em cache de dados.Chamar o UpdateRowHeightInfo método ao alterar as informações de altura de linhas em cache fora de um RowHeightInfoPushed manipulador de eventos para garantir que o valor corrente é usado na exibição do controle.

Práticas recomendadas no modo virtual

Se você estiver implementando o modo virtual para que funcionem com eficiência com grandes quantidades de dados, você também deseja garantir que você está trabalhando com eficiência com o DataGridView controle propriamente dito. Para obter mais informações sobre o uso eficiente dos estilos de célula, dimensionamento automático, as seleções e compartilhamento de linha, consulte Práticas recomendadas para escala o controle DataGridView do Windows Forms.

Consulte também

Tarefas

Demonstra Passo a passo: Implementando o modo virtual no Windows Forms DataGridView controle

Conceitos

Práticas recomendadas para escala o controle DataGridView do Windows Forms

Implementando o modo virtual com dados Just-in-time loading in Windows Forms DataGridView controle

Referência

DataGridView

VirtualMode

Outros recursos

Desempenho ajuste in Windows Forms DataGridView controle