DataGridView CellFormatting


 

สิ่งที่จำเป็น (Prerequisites)

  • Microsoft Visual Studio 2008
  • SQL Server (2005,2008) Express

Download source:
CS:
http://cid-7d608959d854cb28.skydrive.live.com/embedrowdetail.aspx/SourcesCode/dataGridView|_CellFormatting|_CS.zip

VB.Net
http://cid-7d608959d854cb28.skydrive.live.com/embedrowdetail.aspx/SourcesCode/dataGridView|_CellFormatting|_VB.zip

 

หากเราจะเน้นสี (Highlight) บนคอลัมน์ของ dataGridView เช่นต้องการเน้นสีของคอลัมน์ UnitsInStock ถ้ามีค่าน้อยกว่า 20 ให้พื้นเป็นสีเหลือง และตัวหนังสือเป็นสีแดงเราสามารถทำได้โดยใส่โค้ดในเมธอด CellFormatting ลองดูหน้าจอแอพพลิเคชัน จะเป็นดังรูปที่ 1

0

รูปที่ 1:

 

สร้างโปรเจ็กต์:

สร้างโปรเจ็กต์ด้วยเท็มเพลต Windows Forms Application จากนั้นลาก DataGridView ไปวางบน Form1 และทำการยึดความสูง-กว้างของ DataGridView เข้ากับความสูง-กว้าง ของ Form1 โดยการปรับ Properties Anchor ให้เป็น Top, Bottom, Left, Right ดังรูปที่ 2

1

รูปที่ 2:

 

ผูกข้อมูลบน DataGridView

ผูกข้อมูลให้กับ DataGridView โดยคลิกเมาส์ลงบน Smart Tag (DataGridView Tasks) แล้วเลือก AddProject Data Source… ดังรูปที่ 3

2

รูปที่ 3:

 

เลือกประเภทแหล่งข้อมูลเป็น Database แล้วคลิก Next ดังรูปที่ 4 จากนั้นสร้าง Connection ชี้ไปยังฐานข้อมูลที่ต้องการ ในที่นี้ขอใช้ฐานข้อมูล Northwind บนเครื่องตัวเอง(Local) บน SQL Server Express 2005 ดังรูปที่ 5

3 4

รูปที่ 4                                                      รูปที่ 5

 

คลิก Next และ คลิก Next

5 6

รูปที่ 6                                                      รูปที่ 7

 

ให้เลือกอ็อบเจ็กต์ตารางสินค้า (Producs) และเลือกฟิลด์ ตามต้องการในที่นี้ขอเลือกตามรูปที่ 8 แล้วคลิก Finish เราจะได้ผลดังรูปที่ 9

7  8

รูปที่ 8                                                       รูปที่ 9

 

VS2008 จะเจนอ็อบเจ็กต์ให้เรา 3 ดังรูปที่ 10 และทำการผูกข้อมูลให้เราพร้อมใช้งานได้ทันที โดยมิต้องโค้ดดิ้งแม้บรรทัดเดียว ตอนนนี้ถ้าเราลองทดสอบรันดูจะเห็นว่า DataGridView ของเราสามารถดึงข้อมูลจากฐานข้อมูลไปแสดงบนตัวมันได้เรียบร้อยแล้ว

9

รูปที่ 10

 

ใสโค้ดเน้นสี

ให้เราไปใสโค้ดเพื่อเน้นสีบนคอลัมน์ UnitsInStock ในเมธอด CellFormatting โดยคลิกเมาส์ลงบน DataGridView แล้วไปที่ Properties คลิกแทบอีเวนท์(เครื่องหมายฟ้าผ่า) แล้วดับเบิ้ลคลิกลงบนอีเว้นท์ CellFormatting ดังรูปที่ 11 แล้วทำการใส่โค้ดตาม Listing 1 และ Listing 2 ตามภาษาที่เราถนัดได้เลยครับ

10

รูปที่ 11

 

Listing 1 (C#):


       
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
       
{
           
if ((e.Value != null) && (e.ColumnIndex == 3))
           
{

                if (Convert.ToInt32(e.Value) <= 20)
               
{

                    e.CellStyle.BackColor = Color.Yellow;

                    e.CellStyle.ForeColor = Color.Red;

                }

            }

        }

 

Listing 2 (VB):

   

Private Sub DataGridView1_CellFormatting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) 

Handles DataGridView1.CellFormatting

        If (Not (IsNothing(e.Value)) And (e.ColumnIndex = 3)) Then
           
If (Convert.ToInt32(e.Value) <= 20) Then
               
e.CellStyle.BackColor = Color.Yellow
               
e.CellStyle.ForeColor = Color.Red
           
End If
       
End If

    End Sub


 

เกี่ยวกับ

Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: https://janawat.wordpress.com - WindowsITPro Columnist(Mr.Nano): http://windowsitpro.net - The GreatFriends.Biz Community Discussion Board (nano): http://greatfriends.biz - witter: https://twitter.com/janawat - Facebook Page: https://www.facebook.com/nuchit - Instructor: http://bit.ly/GF250-01, http://bit.ly/GF150-02

เขียนใน Windows Application
3 comments on “DataGridView CellFormatting
  1. นิคนะ พูดว่า:

    เพิ่งจะเ้ข้ามาดู bolg เป็นครั้งแรกครับ น่าสนใจมากๆกำลังศึกษา .NET อยู่ ผมเรียน com sci ครับ มีวิชา Database Application แต่ก็ไม่ได้ลึกมากอยากจะให้คุณ janawat ช่วยแนะนำด้วยครับ อยากให้เขียนเรื่องการสร้าง window application และนำมาใช้กับ web application ครับจะเป็นตัวอย่างไหนก็ได้ที่เห็นได้ชัดขอบคุณมากครับ จะติดตามต่อไปเรื่อยๆครับ สู้ๆ

  2. *Plz พูดว่า:

    เปนประโยชน์มากค่า

  3. Nuchit พูดว่า:

    ดีใจครับ ถ้าสิ่งเล็กน้อยเหล่านี้เป็นประโยชน์

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

In Archive
%d bloggers like this: