Bagikan melalui


Mode Virtual di Formulir Windows Kontrol DataGridView

Dengan mode virtual, Anda dapat mengelola interaksi antara DataGridView kontrol dan cache data kustom. Untuk menerapkan mode virtual, atur VirtualMode properti ke true dan tangani satu atau beberapa peristiwa yang dijelaskan dalam topik ini. Anda biasanya akan menangani setidaknya CellValueNeeded peristiwa, yang memungkinkan kontrol mencari nilai dalam cache data.

Mode Terikat dan Mode Virtual

Mode virtual hanya diperlukan ketika Anda perlu melengkapi atau mengganti mode terikat. Dalam mode terikat, Anda mengatur DataSource properti dan kontrol secara otomatis memuat data dari sumber yang ditentukan dan mengirimkan perubahan pengguna kembali ke properti tersebut. Anda dapat mengontrol kolom terikat mana yang ditampilkan, dan sumber data itu sendiri biasanya menangani operasi seperti pengurutan.

Melengkapi Mode Terikat

Anda dapat melengkapi mode terikat dengan menampilkan kolom yang tidak terikat bersama dengan kolom terikat. Ini kadang-kadang disebut "mode campuran" dan berguna untuk menampilkan hal-hal seperti nilai terhitung atau kontrol antarmuka pengguna (UI).

Karena kolom yang tidak terikat berada di luar sumber data, kolom tersebut diabaikan oleh operasi pengurutan sumber data. Oleh karena itu, saat mengaktifkan pengurutan dalam mode campuran, Anda harus mengelola data yang tidak terikat dalam cache lokal dan menerapkan mode virtual untuk membiarkan DataGridView kontrol berinteraksi dengannya.

Untuk informasi selengkapnya tentang menggunakan mode virtual untuk mempertahankan nilai di kolom yang tidak terikat, lihat contoh dalam DataGridViewCheckBoxColumn.ThreeState topik referensi properti dan System.Windows.Forms.DataGridViewComboBoxColumn kelas.

Mengganti Mode Terikat

Jika mode terikat tidak memenuhi kebutuhan performa Anda, Anda dapat mengelola semua data Anda dalam cache kustom melalui penanganan aktivitas mode virtual. Misalnya, Anda dapat menggunakan mode virtual untuk menerapkan mekanisme pemuatan data just-in-time yang hanya mengambil data sebanyak mungkin dari database jaringan yang diperlukan untuk performa optimal. Skenario ini sangat berguna ketika bekerja dengan data dalam jumlah besar melalui koneksi jaringan yang lambat atau dengan komputer klien yang memiliki jumlah RAM atau ruang penyimpanan yang terbatas.

Untuk informasi selengkapnya tentang menggunakan mode virtual dalam skenario just-in-time, lihat Menerapkan Mode Virtual dengan Pemuatan Data Just-In-Time di Formulir Windows Kontrol DataGridView.

Peristiwa Mode Virtual

Jika data Anda bersifat baca-saja, peristiwa mungkin CellValueNeeded satu-satunya peristiwa yang perlu Anda tangani. Peristiwa mode virtual tambahan memungkinkan Anda mengaktifkan fungsionalitas tertentu seperti pengeditan pengguna, penambahan dan penghapusan baris, dan transaksi tingkat baris.

Beberapa peristiwa standar DataGridView (seperti peristiwa yang terjadi saat pengguna menambahkan atau menghapus baris, atau ketika nilai sel diedit, diurai, divalidasi, atau diformat) juga berguna dalam mode virtual. Anda juga dapat menangani peristiwa yang memungkinkan Anda mempertahankan nilai yang biasanya tidak disimpan di sumber data terikat, seperti teks TipsAlat sel, teks kesalahan sel dan baris, data menu pintasan sel dan baris, dan data tinggi baris.

Untuk informasi selengkapnya tentang menerapkan mode virtual untuk mengelola data baca/tulis dengan cakupan penerapan tingkat baris, lihat Panduan: Menerapkan Mode Virtual di Formulir Windows Kontrol DataGridView.

Untuk contoh yang menerapkan mode virtual dengan cakupan penerapan tingkat sel, lihat VirtualMode topik referensi properti.

Peristiwa berikut hanya terjadi ketika VirtualMode properti diatur ke true.

Event Deskripsi
CellValueNeeded Digunakan oleh kontrol untuk mengambil nilai sel dari cache data untuk ditampilkan. Kejadian ini hanya terjadi untuk sel dalam kolom yang tidak terikat.
CellValuePushed Digunakan oleh kontrol untuk menerapkan input pengguna untuk sel ke cache data. Kejadian ini hanya terjadi untuk sel dalam kolom yang tidak terikat.

UpdateCellValue Panggil metode saat mengubah nilai cache di luar CellValuePushed penanganan aktivitas untuk memastikan bahwa nilai saat ini ditampilkan dalam kontrol dan untuk menerapkan mode ukuran otomatis yang saat ini berlaku.
NewRowNeeded Digunakan oleh kontrol untuk menunjukkan kebutuhan akan baris baru dalam cache data.
RowDirtyStateNeeded Digunakan oleh kontrol untuk menentukan apakah baris memiliki perubahan yang tidak dilakukan.
CancelRowEdit Digunakan oleh kontrol untuk menunjukkan bahwa baris harus kembali ke nilai singgahannya.

Peristiwa berikut berguna dalam mode virtual, tetapi dapat digunakan terlepas dari VirtualMode pengaturan properti.

Aktivitas Deskripsi
UserDeletingRow

UserDeletedRow

RowsRemoved

RowsAdded
Digunakan oleh kontrol untuk menunjukkan kapan baris dihapus atau ditambahkan, memungkinkan Anda memperbarui cache data yang sesuai.
CellFormatting

CellParsing

CellValidating

CellValidated

RowValidating

RowValidated
Digunakan oleh kontrol untuk memformat nilai sel untuk tampilan dan untuk mengurai dan memvalidasi input pengguna.
CellToolTipTextNeeded Digunakan oleh kontrol untuk mengambil teks TipsAlat DataSource sel saat properti diatur atau VirtualMode properti adalah true.

TipsAlat Sel hanya ditampilkan saat ShowCellToolTips nilai properti adalah true.
CellErrorTextNeeded

RowErrorTextNeeded
Digunakan oleh kontrol untuk mengambil teks kesalahan sel atau baris saat DataSource properti diatur atau VirtualMode properti adalah true.

UpdateCellErrorText Panggil metode atau UpdateRowErrorText metode saat Anda mengubah teks kesalahan sel atau baris untuk memastikan bahwa nilai saat ini ditampilkan dalam kontrol.

Glyph kesalahan sel dan baris ditampilkan saat ShowCellErrors nilai properti dan ShowRowErrors adalah true.
CellContextMenuStripNeeded

RowContextMenuStripNeeded
Digunakan oleh kontrol untuk mengambil sel atau baris ContextMenuStrip saat properti kontrol DataSource diatur atau VirtualMode properti adalah true.
RowHeightInfoNeeded

RowHeightInfoPushed
Digunakan oleh kontrol untuk mengambil atau menyimpan informasi tinggi baris dalam cache data. UpdateRowHeightInfo Panggil metode saat mengubah informasi tinggi baris yang di-cache di luar RowHeightInfoPushed penanganan aktivitas untuk memastikan bahwa nilai saat ini digunakan dalam tampilan kontrol.

Praktik Terbaik dalam Mode Virtual

Jika Anda menerapkan mode virtual untuk bekerja secara efisien dengan data dalam jumlah besar, Anda juga ingin memastikan bahwa Anda bekerja secara efisien dengan kontrol itu DataGridView sendiri. Untuk informasi selengkapnya tentang penggunaan gaya sel yang efisien, ukuran otomatis, pilihan, dan berbagi baris, lihat Praktik Terbaik untuk Menskalakan Kontrol Formulir Windows DataGridView.

Baca juga