Changing Font in DataGridView

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
Mr_FulanoAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Bob HoffmanDeveloperCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Mr_FulanoAuthor Commented:
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
Mr_FulanoAuthor Commented:
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
JavaScript Best Practices

Save hours in development time and avoid common mistakes by learning the best practices to use for JavaScript.

Mr_FulanoAuthor Commented:
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
Mr_FulanoAuthor Commented:
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
Bob HoffmanDeveloperCommented:
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
Mr_FulanoAuthor Commented:
I was able to figure it out only with your help HBHoffman. Thank you for your assistance as it was very valuable.

Fulano
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.