Solved

Changing Font in DataGridView

Posted on 2009-06-30
7
966 Views
Last Modified: 2012-05-07
Hi, I'm using VB 2005, WinForms. I have a DataGridView that contains a list of users. Some users are "active" users and some are "inactive." I use a BindingSource Filter to show each type. -- All that works great.

However, for the sake of clarity, I'd like to change the Font of the "inactive" users to a font with a "strike-through" line. Hence, showing that the user has been crossed out or removed from the list in some graphic manner.

How can I change my DataGridView's Font to "strike-through"?

I tried >>   dgvMyUsers.Font.Strikeout = True , but that doesn't work. It gets a squiggly blue line under it. What's missing?

Thanks for your help,
Fulano
0
Comment
Question by:Mr_Fulano
  • 5
  • 2
7 Comments
 
LVL 8

Accepted Solution

by:
Bob Hoffman earned 500 total points
ID: 24751362
there is one event named "DataGridView1_RowsAdded" you can add your code to change font color in that event. The event fire when the datasource is bound to your grid.


Private Sub DataGridView1_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded 

For Each r1 As DataGridViewRow In DataGridView1.Rows 

For Each cell As DataGridViewCell In r1.Cells 

cell.Style.BackColor = Color.DarkRed 

cell.Style.Font = New Font("Tahoma", 8, FontStyle.Bold) 

Next 

Next 

End Sub

Open in new window

0
 

Author Comment

by:Mr_Fulano
ID: 24751452
HI HBHoffman, I don't want to change all my rows. I just want to change the row Font of specific rows that contain certain filtered data. I was hoping to add a single line of code that would change a row's Font style when something happens in a logic statement or a filter request. Your code seems to want to change all the rows.  

There has to be something in my code below that intelli-sense doesn't like or that is missing.

dgvMyUsers.Font.Strikeout = True

Thanks for your help,
Fulano
0
 

Author Comment

by:Mr_Fulano
ID: 24751466
Hi HBHoffman,

I figured it out...its:

dgvMyUsers.Font = New Font(dgvMyUsers.Font, FontStyle.Strikeout)

I'll award you the points for trying to help...thanks anyways!

Fulano
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Closing Comment

by:Mr_Fulano
ID: 31598632
The solution is not what worked for me. Please see my post below for a solution to my question that I worked out myself. -- Thanks for trying!!!
0
 

Author Comment

by:Mr_Fulano
ID: 24751567
NOTE: Here is a version of HBHoffman's code that will change only the "Inactive" records.

In my code an empty string is equal to an active user.

HBHoffman's code was good, but I needed to play with it to make it work for my needs. However, HBHoffman did a great job in trying to help me an in producing code that helped me get to where I needed to get to.

Thanks again,
Fulano
Private Sub DataGridView1_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded 

For Each r1 As DataGridViewRow In DataGridView1.Rows 

For Each cell As DataGridViewCell In r1.Cells 

If r1.Cells("CurrentStatus").Value.ToString Is String.Empty Then

                    cell.Style.Font = New Font("Microsoft San Serif", 8, FontStyle.Regular)

                Else

                    cell.Style.Font = New Font("Microsoft San Serif", 8, FontStyle.Strikeout)

                End If

Next 

Next 

End Sub

Open in new window

0
 
LVL 8

Expert Comment

by:Bob Hoffman
ID: 24756066
Yea, I wasn't sure what condition constituted an "inactive" user. I probably should have included the code that demonstrates how to test cell values. Glad you got it fugured out.
0
 

Author Comment

by:Mr_Fulano
ID: 24760575
I was able to figure it out only with your help HBHoffman. Thank you for your assistance as it was very valuable.

Fulano
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction When many people think of the WebBrowser (http://msdn.microsoft.com/en-us/library/2te2y1x6%28v=VS.85%29.aspx) control, they immediately think of a control which allows the viewing and navigation of web pages. While this is true, it's a…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.

912 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now