Highlighting Record in Winform DataGridView

Posted at : Jul/02/2007
16250 Views | 16 Comments

Kontrol Winform DataGridView mempunyai sebuah event yang dapat kita gunakan salah satunya untuk memberikan warna tertentu properti back color dan fore color dengan kriteria record yang kita inginkan. Misalkan kita ingin memberi warna yang berbeda untuk record dimana data produk yang dimiliki memiliki nilai stok sama dengan 0 (nol). Event yang dapat digunakan yaitu CellFormatting. Dengan memanfaatkan event tersebut kita dapat merubah style cell yang berbeda dengan nilai defaultnya, bahkan kita juga bisa menambahkan atau merubah teks ke cell tertentu.

Pada artikel kali ini saya akan membuat contoh aplikasi sederhana yang akan mengecek UnitsInStock table Products di database Northwind. Jika nilai stok nya 0 (nol) maka cell atau row tersebut akan diberi warna merah dengan teks nya berwarna kuning.

Dengan menggunakan DataGridViewCellFormattingEventArgs yang kita dapat menentukan kolom tertentu yang akan diberi warna back color atau teks color yang berbeda. Selain itu dari parameter tersebut dapat kita dapatkan value dari cell yang sedang aktif. Sehingga dari sini lah kita terapkan kriteria formatting cell yang diinginkan.

Pada contoh code ini saya menggunakan Data Access Layer (ADONetHelper) yang saya buat sendiri untuk memudahkan pembuatan code saja :). Anda tinggal ganti saja dengan code yang sesuai (You know what i mean eh... :) ). Ok...let us see the code :

   1:  Option Strict On
   2:   
   3:  Imports ADONetHelper
   4:  Imports System.Data.SqlClient
   5:   
   6:  Public Class frmHighlightGrid
   7:   
   8:      Private strConn As String = My.Settings.connString
   9:      Private sqlConn As New SqlConnection(strConn)
  10:      Private rowToPaint As DataGridViewRow
  11:   
  12:      Private Sub LoadData()
  13:          Dim dtProd As DataTable = _
  14:          ADONetHelper.DataTableObject.GetDataTableFromDataReader( _
  15:          "Select * From Products", CommandType.Text, sqlConn, _
  16:          "products")
  17:   
  18:          DataGridView1.DataSource = dtProd
  19:   
  20:          DataGridView1.SelectionMode = _
  21:          DataGridViewSelectionMode.FullRowSelect
  22:   
  23:          DataGridView1.RowsDefaultCellStyle.SelectionBackColor = _
  24:          Color.Aqua
  25:   
  26:          DataGridView1.RowsDefaultCellStyle.SelectionForeColor = _
  27:          Color.Black
  28:   
  29:          DataGridView1.RowHeadersDefaultCellStyle.SelectionBackColor = _
  30:          Color.Aqua
  31:          DataGridView1.RowHeadersDefaultCellStyle.SelectionForeColor = _
  32:          Color.Red
  33:   
  34:      End Sub
  35:   
  36:      Private Sub Button1_Click(ByVal sender As System.Object, _
  37:      ByVal e As System.EventArgs) Handles Button1.Click
  38:          Me.LoadData()
  39:      End Sub
  40:   
  41:      Private Sub DataGridView1_CellFormatting(ByVal sender As Object, _
  42:      ByVal e As _
  43:      System.Windows.Forms.DataGridViewCellFormattingEventArgs) _
  44:      Handles DataGridView1.CellFormatting
  45:          If e.ColumnIndex = 6 Then '//UnitsInStock column
  46:   
  47:              rowToPaint = Me.DataGridView1.Rows(e.RowIndex)
  48:   
  49:              If Not rowToPaint.IsNewRow AndAlso _
  50:              CInt(e.Value) = 0 Then '//jika stok = 0 dan bukan row baru
  51:                  e.Value = e.Value.ToString & " - Need to Order"
  52:   
  53:                  rowToPaint.DefaultCellStyle.BackColor = _
  54:                  Color.Red
  55:   
  56:                  rowToPaint.DefaultCellStyle.ForeColor = _
  57:                  Color.Yellow
  58:              End If
  59:          End If
  60:      End Sub
  61:   
  62:  End Class

The result in action :


InfoEbook-ebook yang tersedia yang dapat dipesan secara langsung atau melalui google play store.



[Comments]

ecoy (Oct/24/2007 03:18:25)
mas kalo pake datagrid yang tersedia di vb6 source kodenya apaan.
Rully Yulian MF (Oct/24/2007 03:39:05)
Btw mas ecoy saya sudah lama sekali ga pake vb6 :) (sudah hampir 4 tahunan) sori banget...mungkin mas bisa googling di internet :)
ecoy (Oct/24/2007 04:19:43)
saya dah telusuri di semua web tapi belum ada yang berhasil... biar datagrid divb 6 itu salah satu row nya berganti warna seperti pada source kode Highlighting Record in Winform DataGrid semua pada menyarankan menggunakan flex grid. masalahnya disemua form saya gunakan datagrid. jadi kalo diganti dengan flexgrid ... cape deh... padahal cuma permasalahan ganti warna doang biar keliatan jelas gitu
ecoy (Oct/24/2007 04:21:16)
tolong dong bang pang cariin perintahnya .thank;s before and after.
Rully Yulian MF (Oct/24/2007 04:48:06)
Saya ga janji mas :) klo ada waktu ntar saya liat-liat dah (saya harus install dulu Visual Studio 6 nya :)) btw ga ada rencana buat upgrade ke vb.net?
ecoy (Oct/24/2007 05:57:04)
waduh kayaknya nanti aja deh soalnya gak ada waktu ...,senin sampe jumat kerja, sabtu & minggu nerusin kuliah. maklum baru punya duit mas buat kuliah. ini aja saya bisa masuk kerja gara gara bisa sedikit program. peninggalan kuliah d3 komputer. skrng nerusin s1. yah lumayan. alhamdulillah bisa dapet kerjaan juga walaupun honor.
ASDA (Aug/13/2009 04:19:26)
SALAM KENAL.... MASALAH GANTI WARNA JG NIH TAPI DI MSHFLEXGRID KETIKA STOCK BARANG MENIPIS MK WARNA BERUBAH,GMN TAH? THANKS
bodo (Oct/26/2009 01:53:34)
tau dah...kaga danta...
Adi (Nov/27/2009 09:54:12)
wah.... akhirnya ketemu juga nih yang saya cari. hampir aja ganti komponen. ternyata datagridview udah mantap ya skr dibandingkan dengan kakaknya yang di vb 6. Mas Rully, thx banget atas informasinya. Pokoknya mantap dah nih artikel...
santo (Feb/20/2013 03:31:51)

kang Rully,bisa minta bocoran  untuk pembuatan ADONetHelper nya..:D maklum masih belum paham ni...

Rully (Feb/23/2013 10:57:31)

Santo > Itu cuma data access layer biasa saja mas dengan menggunakan ADO.NET yang sudah dibungkus menjadi .dll :)

Bima (Aug/31/2015 12:03:10)

 gan ane udah cari2 solusi buat seperti diatas. ane pake VB 6 dan VSFlexgrid... tp masih belum bisa... ada saran gan?

Rully (Sep/01/2015 08:19:49)

Bima > Kode diatas memang untuk vb.net...disarankan sih pindah ke vb.net saja mas :) 

Zeldianto Eka Putra (Jan/02/2017 08:04:18)

 Wah,, makasi banget nih mas.. sangat membantu

 

Yoga (Aug/24/2017 11:31:09)

Bang ini saya punya project tapi konek dengan ms acces. apakah ada pencerahan dari abang? masih pemula banget soalnya. Soalnya punya abang yang ini kan pake sql.

Agsms (Mar/11/2018 01:54:28)

 Sangat bermanfaat.. trims bang..


[Write your comment]

Name (required)

Email (required-will not published)

Comment
3751
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6982 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4893 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4045 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3460 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2881 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2024   Rully Yulian MF   All rights reserved.