Freigeben über


Virtueller Modus im DataGridView-Steuerelement in Windows Forms

Aktualisiert: November 2007

Mit dem virtuellen Modus können Sie die Interaktion zwischen dem DataGridView-Steuerelement und einem benutzerdefinierten Datencache verwalten. Um den virtuellen Modus zu implementieren, legen Sie die VirtualMode-Eigenschaft auf true fest, und behandeln Sie eines oder mehrere der Ereignisse, die weiter unten in diesem Thema beschrieben werden. Für gewöhnlich behandeln Sie zumindest das CellValueNeeded-Ereignis, das es dem Steuerelement ermöglicht, Werte im Datencache zu suchen.

Gebundener Modus und virtueller Modus

Der virtuelle Modus ist nur erforderlich, wenn Sie den gebundenen Modus ergänzen oder ersetzen müssen. Im gebundenen Modus legen Sie die DataSource-Eigenschaft fest, sodass das Steuerelement die Daten automatisch aus der angegebenen Quelle lädt und Änderungen des Benutzers an diese zurücksendet. Sie können steuern, welche der gebundenen Spalten angezeigt werden. Die Datenquelle selbst behandelt für gewöhnlich Operationen, z. B. Sortiervorgänge.

Ergänzen des gebundenen Modus

Sie können den gebundenen Modus ergänzen, indem Sie ungebundene Spalten zusammen mit den gebundenen Spalten anzeigen. Dies wird manchmal als "gemischter Modus" bezeichnet und eignet sich beispielsweise zum Anzeigen von berechneten Werten oder UI-Steuerelementen.

Da ungebundene Spalten sich außerhalb der Datenquelle befinden, werden sie von den Sortiervorgängen der Datenquelle ignoriert. Wenn Sie das Sortieren im gemischten Modus aktivieren, müssen Sie daher die ungebundenen Daten in einem lokalen Cache verwalten und den virtuellen Modus implementieren, damit das DataGridView-Steuerelement damit interagiert.

Weitere Informationen über die Verwendung des virtuellen Modus zur Erhaltung der Werte in ungebundenen Spalten finden Sie in den Beispielen in der DataGridViewCheckBoxColumn.ThreeState-Eigenschaft und den Referenzthemen zur System.Windows.Forms.DataGridViewComboBoxColumn-Klasse.

Ersetzen des gebundenen Modus

Wenn der gebundene Modus Ihre Leistungsanforderungen nicht erfüllt, können Sie sämtliche Daten in einem benutzerdefinierten Cache mithilfe von Ereignishandlern des virtuellen Modus verwalten. Beispielsweise können Sie den virtuellen Modus verwenden, um das Just-In-Time-Laden von Daten zu implementieren, wodurch nur so viele Daten aus einer Netzwerkdatenbank abgerufen werden, wie zur Erhaltung der optimalen Leistung möglich sind. Dieses Szenario eignet sich insbesondere bei der Arbeit mit großen Datenmengen, die über eine langsame Netzwerkverbindung übertragen werden, oder mit Clientrechnern, die über eine begrenzte Menge an Arbeitsspeicher oder Speicherplatz verfügen.

Weitere Informationen über die Verwendung des virtuellen Modus in einem Just-In-Time-Szenario finden Sie unter Implementieren des virtuellen Modus mit Just-In-Time-Laden von Daten in das DataGridView-Steuerelement in Windows Forms.

Ereignisse im virtuellen Modus

Wenn Sie nur lesend auf die Daten zugreifen, müssen Sie unter Umständen nur das CellValueNeeded-Ereignis behandeln. Andere Ereignisse im virtuellen Modus ermöglichen es Ihnen, bestimmte Funktionen zu aktivieren, z. B. Bearbeitungen durch den Benutzer, das Hinzufügen und Löschen von Zeilen und Transaktionen auf Zeilenebene.

Einige standardmäßige DataGridView-Ereignisse (z. B. Ereignisse, die auftreten, wenn Benutzer Zeilen hinzufügen oder löschen oder wenn Zellenwerte bearbeitet, analysiert, überprüft oder formatiert werden) sind im virtuellen Modus ebenfalls hilfreich. Sie können auch Ereignisse behandeln, mit denen Sie Werte erhalten können, die normalerweise nicht in einer gebundenen Datenquelle gespeichert sind, z. B. QuickInfo-Zellentext, Zellen- und Zeilenfehlertext, Zellen- und Zeilenkontextmenüdaten und Zeilenhöhendaten.

Weitere Informationen über das Implementieren des virtuellen Modus zur Verwaltung von Lese-/Schreibdaten mit einem Commit-Bereich auf Zeilenebene finden Sie unter Exemplarische Vorgehensweise: Implementieren des virtuellen Modus im DataGridView-Steuerelement in Windows Forms.

Ein Beispiel zur Implementierung des virtuellen Modus mit einem Commit-Bereich auf Zellenebene finden Sie im Referenzthema zur VirtualMode-Eigenschaft.

Die folgenden Ereignisse treten nur auf, wenn die VirtualMode-Eigenschaft auf true festgelegt ist.

Ereignis

Beschreibung

CellValueNeeded

Wird vom Steuerelement verwendet, um einen Zellenwert zur Anzeige aus dem Datencache abzurufen. Dieses Ereignis tritt nur für Zellen in ungebundenen Spalten auf.

CellValuePushed

Wird vom Steuerelement verwendet, um Benutzereingaben für eine Zelle an den Datencache zu übergeben. Dieses Ereignis tritt nur für Zellen in ungebundenen Spalten auf.

Rufen Sie die UpdateCellValue-Methode auf, wenn Sie einen zwischengespeicherten Wert außerhalb eines CellValuePushed-Ereignishandlers ändern, um sicherzustellen, dass der aktuelle Wert im Steuerelement angezeigt wird und einen automatischen Größenanpassungsmodus anzuwenden.

NewRowNeeded

Wird vom Steuerelement verwendet, um darauf hinzuweisen, dass im Datencache eine neue Zeile benötigt wird.

RowDirtyStateNeeded

Wird vom Steuerelement verwendet, um zu bestimmen, ob eine Zeile über nicht gespeicherte Änderungen verfügt.

CancelRowEdit

Wird vom Steuerelement verwendet, um anzugeben, dass die zwischengespeicherten Werte einer Zeile wiederhergestellt werden sollten.

Die folgenden Ereignisse sind im virtuellen Modus hilfreich, können aber unabhängig von der Einstellung der VirtualMode-Eigenschaft verwendet werden.

Ereignisse

Beschreibung

UserDeletingRow

UserDeletedRow

RowsRemoved

RowsAdded

Wird vom Steuerelement verwendet, um anzugeben, wann Zeilen gelöscht oder hinzugefügt werden, und um den Datencache entsprechend zu aktualisieren.

CellFormatting

CellParsing

CellValidating

CellValidated

RowValidating

RowValidated

Wird vom Steuerelement verwendet, um Zellenwerte für die Anzeige zu formatieren und Benutzereingaben zu analysieren und zu überprüfen.

CellToolTipTextNeeded

Wird vom Steuerelement verwendet, um QuickInfo-Zellentext abzurufen, wenn die DataSource-Eigenschaft festgelegt ist oder die VirtualMode-Eigenschaft true lautet.

Zellen-QuickInfos werden nur angezeigt, wenn der ShowCellToolTips-Eigenschaftenwert true lautet.

CellErrorTextNeeded

RowErrorTextNeeded

Wird vom Steuerelement verwendet, um Zellen- oder Zeilenfehlertext abzurufen, wenn die DataSource-Eigenschaft festgelegt ist oder die VirtualMode-Eigenschaft true lautet.

Rufen Sie die UpdateCellErrorText-Methode oder die UpdateRowErrorText-Methode auf, wenn Sie den Zellen- oder Zeilenfehlertext ändern, um sicherzustellen, dass der aktuelle Wert im Steuerelement angezeigt wird.

Zellen- und Zeilenfehlersymbole werden angezeigt, wenn der ShowCellErrors-Eigenschaftenwert und der ShowRowErrors-Eigenschaftenwert true lauten.

CellContextMenuStripNeeded

RowContextMenuStripNeeded

Wird vom Steuerelement verwendet, um ein ContextMenuStrip für eine Zelle oder Zeile abzurufen, wenn die DataSource-Eigenschaft des Steuerelements festgelegt ist oder die VirtualMode-Eigenschaft true lautet.

RowHeightInfoNeeded

RowHeightInfoPushed

Wird vom Steuerelement verwendet, um Zeilenhöheninformationen im Datencache abzurufen oder zu speichern. Rufen Sie die UpdateRowHeightInfo-Methode auf, wenn Sie die zwischengespeicherten Zeilenhöheninformationen außerhalb eines RowHeightInfoPushed-Ereignishandlers ändern, um sicherzustellen, dass der aktuelle Wert im Steuerelement angezeigt wird.

Empfohlene Vorgehensweisen im virtuellen Modus

Wenn Sie den virtuellen Modus implementieren, um effektiv mit großen Datenmengen zu arbeiten, sollten Sie außerdem sicherstellen, dass Sie auch mit dem DataGridView-Steuerelement effektiv arbeiten. Weitere Informationen über die effektive Verwendung von Zellenstilen, automatischer Größenanpassung, Auswahlmöglichkeiten und Zeilenfreigabe finden Sie unter Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Implementieren des virtuellen Modus im DataGridView-Steuerelement in Windows Forms

Konzepte

Empfohlene Vorgehensweisen für das Skalieren des DataGridView-Steuerelements in Windows Forms

Implementieren des virtuellen Modus mit Just-In-Time-Laden von Daten in das DataGridView-Steuerelement in Windows Forms

Referenz

DataGridView

VirtualMode

Weitere Ressourcen

Leistungsoptimierung im DataGridView-Steuerelement in Windows Forms