Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setiap sel dalam kontrol DataGridView dapat memiliki gayanya sendiri, seperti format teks, warna latar belakang, warna latar depan, dan font. Namun, biasanya, beberapa sel akan berbagi karakteristik gaya tertentu.
Grup sel yang berbagi gaya dapat menyertakan semua sel dalam baris atau kolom tertentu, semua sel yang berisi nilai tertentu, atau semua sel dalam kontrol. Karena grup-grup ini tumpang tindih, setiap sel mungkin mendapatkan informasi gayanya dari berbagai sumber. Misalnya, Anda mungkin ingin setiap sel dalam kontrol DataGridView menggunakan font yang sama, tetapi hanya sel dalam kolom mata uang yang menggunakan format mata uang, dan hanya sel mata uang dengan angka negatif untuk menggunakan warna latar depan merah.
Kelas DataGridViewCellStyle
Kelas DataGridViewCellStyle berisi properti berikut yang terkait dengan gaya visual:
Kelas ini juga berisi properti berikut yang terkait dengan pemformatan:
Untuk informasi selengkapnya tentang properti ini dan properti gaya sel lainnya, lihat dokumentasi referensi DataGridViewCellStyle serta topik yang tercantum di bagian Lihat Juga di bawah ini.
Menggunakan Objek DataGridViewCellStyle
Anda dapat mengambil objek DataGridViewCellStyle dari berbagai properti kelas DataGridView, DataGridViewColumn, DataGridViewRow, dan DataGridViewCell dan kelas turunannya. Jika salah satu properti ini belum ditetapkan, mengambil nilainya akan membuat objek DataGridViewCellStyle baru. Anda juga dapat membuat instans objek DataGridViewCellStyle Anda sendiri dan menetapkannya ke properti ini.
Anda dapat menghindari duplikasi informasi gaya yang tidak perlu dengan berbagi objek DataGridViewCellStyle di antara beberapa elemen DataGridView. Karena gaya yang diatur pada tingkat kontrol, kolom, dan baris difilter ke bawah melalui setiap tingkat ke tingkat sel, Anda juga dapat menghindari duplikasi gaya dengan mengatur hanya properti gaya tersebut di setiap tingkat yang berbeda dari tingkat di atas. Ini dijelaskan secara lebih rinci di bagian Warisan Gaya yang mengikutinya.
Tabel berikut mencantumkan properti utama yang mendapatkan atau mengatur objek DataGridViewCellStyle.
Harta benda | Kelas | Deskripsi |
---|---|---|
DefaultCellStyle |
kelas DataGridView, DataGridViewColumn, DataGridViewRow, dan turunan | Mendapatkan atau mengatur gaya default yang digunakan oleh semua sel di seluruh kontrol (termasuk sel header), dalam kolom, atau dalam baris. |
RowsDefaultCellStyle | DataGridView | Mendapatkan atau mengatur gaya sel default yang digunakan oleh semua baris dalam kontrol. Ini tidak termasuk sel header. |
AlternatingRowsDefaultCellStyle | DataGridView | Mendapatkan atau mengatur gaya sel default yang digunakan oleh baris alternatif dalam kontrol. Digunakan untuk membuat efek seperti ledger. |
RowHeadersDefaultCellStyle | DataGridView | Mendapatkan atau mengatur gaya sel default yang digunakan oleh header baris kontrol. Ditimpa oleh tema saat ini jika gaya tampilan visual diaktifkan. |
ColumnHeadersDefaultCellStyle | DataGridView | Mendapatkan atau mengatur gaya sel default yang digunakan oleh header kolom kontrol. Ditimpa oleh tema saat ini jika gaya tampilan visual diaktifkan. |
Style | kelas DataGridViewCell dan kelas-kelas turunan | Mendapatkan atau mengatur gaya yang ditentukan pada tingkat sel. Gaya ini menggantikan yang diwariskan dari tingkat yang lebih tinggi. |
InheritedStyle |
kelas DataGridViewCell, DataGridViewRow, DataGridViewColumn, dan turunan | Mendapatkan semua gaya yang diterapkan saat ini pada sel, baris, atau kolom, termasuk gaya yang diwarisi dari tingkat yang lebih tinggi. |
Seperti disebutkan di atas, mengambil nilai properti gaya secara otomatis menginisiasi objek DataGridViewCellStyle baru jika properti belum ditetapkan sebelumnya. Untuk menghindari pembuatan objek ini secara tidak perlu, kelas baris dan kolom memiliki properti HasDefaultCellStyle yang dapat Anda periksa untuk menentukan apakah properti DefaultCellStyle telah diatur. Demikian pula, kelas sel memiliki properti HasStyle yang menunjukkan apakah properti Style telah ditetapkan.
Setiap properti gaya memiliki peristiwaRow
", "Column
", atau "Cell
" (misalnya, RowDefaultCellStyleChanged). Masing-masing peristiwa ini terjadi ketika properti gaya yang sesuai diatur untuk objek DataGridViewCellStyle yang berbeda. Peristiwa ini tidak terjadi saat Anda mengambil objek DataGridViewCellStyle dari properti style dan memodifikasi nilai-nilai propertinya. Untuk merespons perubahan pada objek gaya sel tersebut, tangani peristiwa CellStyleContentChanged.
Warisan Gaya
Setiap DataGridViewCell mendapatkan penampilannya dari properti InheritedStyle. Objek DataGridViewCellStyle yang dikembalikan oleh properti ini mewarisi nilainya dari hierarki properti tipe DataGridViewCellStyle. Properti ini tercantum di bawah ini sesuai urutan di mana InheritedStyle untuk sel non-header memperoleh nilainya.
DataGridView.AlternatingRowsDefaultCellStyle (hanya untuk sel dalam baris dengan angka indeks ganjil)
Untuk sel header baris dan kolom, properti InheritedStyle diisi oleh nilai dari daftar properti sumber berikut dalam urutan tertentu.
Diagram berikut mengilustrasikan proses ini.
Anda juga dapat mengakses gaya yang diwariskan oleh baris dan kolom tertentu. Kolom InheritedStyle properti mewarisi nilai-nilainya dari properti berikut.
Properti baris InheritedStyle mewarisi nilainya dari properti berikut.
DataGridView.AlternatingRowsDefaultCellStyle (hanya untuk sel dalam baris dengan angka indeks ganjil)
Untuk setiap properti dalam objek DataGridViewCellStyle yang dikembalikan oleh properti InheritedStyle
, nilai properti diperoleh dari gaya sel pertama dalam daftar yang sesuai yang memiliki properti terkait yang diatur ke nilai selain default kelas DataGridViewCellStyle.
Tabel berikut ini menggambarkan bagaimana nilai properti ForeColor untuk contoh sel diwarisi dari kolom tempat sel tersebut berada.
Properti jenis DataGridViewCellStyle |
Contoh nilai ForeColor untuk objek yang diambil |
---|---|
DataGridViewCell.Style | Color.Empty |
DataGridViewRow.DefaultCellStyle | Color.Red |
DataGridView.AlternatingRowsDefaultCellStyle | Color.Empty |
DataGridView.RowsDefaultCellStyle | Color.Empty |
DataGridViewColumn.DefaultCellStyle | Color.DarkBlue |
DataGridView.DefaultCellStyle | Color.Black |
Dalam hal ini, nilai Color.Red dari baris sel adalah nilai riil pertama dalam daftar. Ini menjadi nilai properti ForeColor dari InheritedStylesel .
Diagram berikut menggambarkan bagaimana properti DataGridViewCellStyle yang berbeda dapat mewarisi nilainya dari tempat yang berbeda.
Dengan memanfaatkan pewarisan gaya, Anda dapat memberikan gaya yang sesuai untuk seluruh kontrol tanpa harus menentukan informasi yang sama di beberapa tempat.
Meskipun sel header berpartisipasi dalam pewarisan gaya seperti yang dijelaskan, objek yang dikembalikan oleh properti ColumnHeadersDefaultCellStyle dan RowHeadersDefaultCellStyle kontrol DataGridView memiliki nilai properti awal yang mengambil alih nilai properti objek yang dikembalikan oleh properti DefaultCellStyle. Jika Anda ingin properti yang dihasilkan untuk objek oleh properti DefaultCellStyle diterapkan ke header baris dan kolom, Anda harus mengatur properti objek yang sesuai yang dihasilkan oleh properti ColumnHeadersDefaultCellStyle dan RowHeadersDefaultCellStyle ke nilai default yang ditentukan untuk kelas DataGridViewCellStyle.
Nota
Jika gaya visual diaktifkan, header baris dan kolom (kecuali untuk TopLeftHeaderCell) secara otomatis ditata oleh tema saat ini, mengganti gaya apa pun yang ditentukan oleh properti ini.
Jenis DataGridViewButtonColumn, DataGridViewImageColumn, dan DataGridViewCheckBoxColumn juga menginisialisasi beberapa nilai objek yang dikembalikan oleh kolom DefaultCellStyle properti. Untuk informasi selengkapnya, lihat dokumentasi referensi untuk jenis ini.
Mengatur Gaya Secara Dinamis
Untuk mengkustomisasi gaya sel dengan nilai tertentu, terapkan handler untuk peristiwa DataGridView.CellFormatting. Penangan untuk kejadian ini menerima argumen tipe DataGridViewCellFormattingEventArgs. Objek ini berisi properti yang memungkinkan Anda menentukan nilai sel yang sedang diformat bersama dengan lokasinya dalam kontrol DataGridView. Objek ini juga berisi properti CellStyle yang diinisialisasi ke nilai properti InheritedStyle sel yang sedang diformat. Anda bisa mengubah properti gaya sel untuk menentukan informasi gaya yang sesuai dengan nilai dan lokasi sel.
Nota
Peristiwa RowPrePaint dan RowPostPaint juga menerima objek DataGridViewCellStyle dalam data peristiwa, tetapi dalam hal ini, objek tersebut adalah salinan dari properti baris InheritedStyle untuk tujuan hanya-baca, dan perubahannya tidak memengaruhi kontrol.
Anda juga dapat memodifikasi gaya masing-masing sel secara dinamis sebagai respons terhadap peristiwa seperti peristiwa DataGridView.CellMouseEnter dan CellMouseLeave. Misalnya, dalam handler untuk peristiwa CellMouseEnter, Anda dapat menyimpan nilai warna latar belakang sel saat ini (diambil melalui properti Style sel), lalu mengaturnya ke warna baru yang akan menyoroti sel saat mouse mengarah ke atasnya. Dalam handler untuk peristiwa CellMouseLeave, Anda kemudian dapat memulihkan warna latar belakang ke nilai asli.
Nota
Penyimpanan sementara nilai yang disimpan dalam properti Style sel penting terlepas dari apakah nilai gaya tertentu sudah ditetapkan. Jika Anda mengganti pengaturan gaya untuk sementara waktu, memulihkannya ke status asli "tidak diatur" memastikan bahwa sel akan kembali untuk mewarisi pengaturan gaya dari tingkat yang lebih tinggi. Jika Anda perlu menentukan gaya aktual yang berlaku untuk sel terlepas dari apakah gaya diwariskan, gunakan properti InheritedStyle sel.
Lihat juga
- DataGridView
- DataGridViewCellStyle
- DataGridView.AlternatingRowsDefaultCellStyle
- DataGridView.ColumnHeadersDefaultCellStyle
- DataGridView.DefaultCellStyle
- DataGridView.RowHeadersDefaultCellStyle
- DataGridView.RowsDefaultCellStyle
- DataGridViewBand.InheritedStyle
- DataGridViewRow.InheritedStyle
- DataGridViewColumn.InheritedStyle
- DataGridViewBand.DefaultCellStyle
- DataGridViewCell.InheritedStyle
- DataGridViewCell.Style
- DataGridView.CellFormatting
- DataGridView.CellStyleContentChanged
- DataGridView.RowPrePaint
- DataGridView.RowPostPaint
- Pemformatan dan Penataan Dasar dalam Kontrol Windows Forms DataGridView
- Cara mengatur gaya sel default untuk kontrol Windows Forms DataGridView
- Pemformatan Data pada Pengontrol DataGridView Windows Forms
.NET Desktop feedback