Gaya Sel dalam Kontrol Formulir Windows DataGridView
Setiap sel dalam DataGridView kontrol 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 ini tumpang tindih, setiap sel mungkin mendapatkan informasi gayanya dari lebih dari satu tempat. Misalnya, Anda mungkin ingin setiap sel dalam DataGridView kontrol 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 DataGridViewCellStyle dokumentasi referensi dan topik yang tercantum di bagian Lihat Juga di bawah ini.
Menggunakan Objek DataGridViewCellStyle
Anda dapat mengambil DataGridViewCellStyle objek dari berbagai properti DataGridViewkelas , , DataGridViewColumnDataGridViewRow, dan DataGridViewCell dan dan kelas turunannya. Jika salah satu properti ini belum ditetapkan, mengambil nilainya akan membuat objek baru DataGridViewCellStyle . Anda juga dapat membuat instans objek Anda sendiri DataGridViewCellStyle dan menetapkannya ke properti ini.
Anda dapat menghindari duplikasi informasi gaya yang tidak perlu dengan berbagi DataGridViewCellStyle objek di antara beberapa DataGridView elemen. 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 DataGridViewCellStyle objek.
Properti | Kelas | Deskripsi |
---|---|---|
DefaultCellStyle |
DataGridViewkelas , , DataGridViewColumnDataGridViewRow, 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 visual diaktifkan. |
ColumnHeadersDefaultCellStyle | DataGridView | Mendapatkan atau mengatur gaya sel default yang digunakan oleh header kolom kontrol. Ditimpa oleh tema saat ini jika gaya visual diaktifkan. |
Style | DataGridViewCell dan kelas turunan | Mendapatkan atau mengatur gaya yang ditentukan di tingkat sel. Gaya ini mengambil alih yang diwariskan dari tingkat yang lebih tinggi. |
InheritedStyle |
DataGridViewCellkelas , , DataGridViewRowDataGridViewColumn, dan turunan | Mendapatkan semua gaya yang saat ini diterapkan ke sel, baris, atau kolom, termasuk gaya yang diwarisi dari tingkat yang lebih tinggi. |
Seperti disebutkan di atas, mendapatkan nilai properti gaya secara otomatis membuat instans objek baru DataGridViewCellStyle jika properti belum ditetapkan sebelumnya. Untuk menghindari pembuatan objek ini secara tidak perlu, kelas baris dan kolom memiliki HasDefaultCellStyle properti yang dapat Anda periksa untuk menentukan apakah DefaultCellStyle properti telah diatur. Demikian pula, kelas sel memiliki HasStyle properti yang menunjukkan apakah Style properti telah diatur.
Setiap properti gaya memiliki peristiwa PropertyNameChanged
yang sesuai pada DataGridView kontrol. Untuk properti baris, kolom, dan sel, nama peristiwa dimulai dengan "Row
", "Column
", atau "Cell
" (misalnya, RowDefaultCellStyleChanged). Masing-masing peristiwa ini terjadi ketika properti gaya yang sesuai diatur ke objek yang berbeda DataGridViewCellStyle . Peristiwa ini tidak terjadi saat Anda mengambil DataGridViewCellStyle objek dari properti gaya dan memodifikasi nilai propertinya. Untuk merespons perubahan pada objek gaya sel itu CellStyleContentChanged sendiri, tangani peristiwa.
Warisan Gaya
Masing-masing DataGridViewCell mendapatkan penampilannya dari propertinya InheritedStyle . Objek DataGridViewCellStyle yang dikembalikan oleh properti ini mewarisi nilainya dari hierarki properti tipe DataGridViewCellStyle. Properti ini tercantum di bawah ini dalam urutan InheritedStyle untuk sel non-header mendapatkan nilainya.
DataGridView.AlternatingRowsDefaultCellStyle (hanya untuk sel dalam baris dengan angka indeks ganjil)
Untuk sel header baris dan kolom, InheritedStyle properti diisi oleh nilai dari daftar properti sumber berikut dalam urutan tertentu.
Diagram berikut mengilustrasikan hubungan ini.
Anda juga dapat mengakses gaya yang diwariskan oleh baris dan kolom tertentu. Properti kolom InheritedStyle mewarisi 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 yang DataGridViewCellStyleInheritedStyle
dikembalikan oleh properti, nilai properti diperoleh dari gaya sel pertama dalam daftar yang sesuai yang memiliki properti terkait yang diatur ke nilai selain DataGridViewCellStyle default kelas.
Tabel berikut ini menggambarkan bagaimana ForeColor nilai properti untuk contoh sel diwarisi dari kolom yang berisi.
Properti jenis DataGridViewCellStyle |
Contoh ForeColor nilai 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, Color.Red nilai dari baris sel adalah nilai riil pertama dalam daftar. Ini menjadi ForeColor nilai properti sel InheritedStyle.
Diagram berikut menggambarkan bagaimana properti yang berbeda DataGridViewCellStyle 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 ColumnHeadersDefaultCellStyle properti DataGridView dan RowHeadersDefaultCellStyle kontrol memiliki nilai properti awal yang mengambil alih nilai properti objek yang dikembalikan oleh DefaultCellStyle properti. Jika Anda ingin properti diatur untuk objek yang dikembalikan oleh DefaultCellStyle properti untuk diterapkan ke header baris dan kolom, Anda harus mengatur properti objek yang sesuai yang dikembalikan oleh ColumnHeadersDefaultCellStyle properti dan RowHeadersDefaultCellStyle ke default yang ditunjukkan untuk DataGridViewCellStyle kelas .
Catatan
Jika gaya visual diaktifkan, header baris dan kolom (kecuali ) TopLeftHeaderCellsecara 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 properti kolom DefaultCellStyle . Untuk informasi selengkapnya, lihat dokumentasi referensi untuk jenis ini.
Mengatur Gaya Secara Dinamis
Untuk mengkustomisasi gaya sel dengan nilai tertentu, terapkan handler untuk peristiwa tersebut DataGridView.CellFormatting . Handler untuk kejadian ini menerima argumen jenis DataGridViewCellFormattingEventArgs . Objek ini berisi properti yang memungkinkan Anda menentukan nilai sel yang sedang diformat bersama dengan lokasinya dalam DataGridView kontrol. Objek ini juga berisi CellStyle properti yang diinisialisasi ke nilai InheritedStyle properti sel yang sedang diformat. Anda bisa mengubah properti gaya sel untuk menentukan informasi gaya yang sesuai dengan nilai dan lokasi sel.
Catatan
Peristiwa RowPrePaint dan RowPostPaint juga menerima DataGridViewCellStyle objek dalam data peristiwa, tetapi dalam kasusnya, ini adalah salinan properti baris InheritedStyle untuk tujuan baca-saja, dan perubahan pada data tersebut tidak memengaruhi kontrol.
Anda juga dapat memodifikasi gaya masing-masing sel secara dinamis sebagai respons terhadap peristiwa seperti DataGridView.CellMouseEnter peristiwa dan CellMouseLeave . Misalnya, dalam handler untuk peristiwa tersebut CellMouseEnter , Anda dapat menyimpan nilai warna latar belakang sel saat ini (diambil melalui properti sel Style ), lalu mengaturnya ke warna baru yang akan menyorot sel saat mouse mengarahkan kursor ke atasnya. Dalam handler untuk peristiwa, CellMouseLeave Anda kemudian dapat memulihkan warna latar belakang ke nilai asli.
Catatan
Penembolokan nilai yang disimpan di properti sel Style penting terlepas dari apakah nilai gaya tertentu diatur. 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 sel InheritedStyle .
Baca 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 Gaya Dasar di Kontrol Formulir Windows DataGridView
- Cara: Mengatur Gaya Sel Default untuk Kontrol Formulir Windows DataGridView
- Pemformatan Data di Formulir Windows Kontrol DataGridView
.NET Desktop feedback
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk