I have a ListView in Details mode, and I'd like to have some of its items' text in bold (for highlighting where it finds some substring in the item text).
So something like this:
Is there any way to do that?
Okay, so this is going to be difficult because you're going to have to
ListView first by setting that property to
true. Now that you've done that you're going to need to implement
DrawColumnHeader and place this line in it:
e.DrawDefault = true;
Next you'll need to implement the following code, either in
DrawSubItem depending on which area it exists in. Keep in mind the code I'm giving you isn't fully complete because it's not parsing the string or anything and further you still need to implement drawing a selected item now because your drawing the text on your own.
var boldFont = new Font(this.Font, FontStyle.Bold); var location = new PointF(e.Bounds.Location.X, e.Bounds.Location.Y); e.Graphics.DrawString("Somefilename/", this.Font, Brushes.Black, location); var size = e.Graphics.MeasureString("Somefilename/", this.Font); location.X += size.Width; e.Graphics.DrawString("boldText", boldFont, Brushes.Black, location); size = e.Graphics.MeasureString("boldText", boldFont); location.X += size.Width; e.Graphics.DrawString("/etc", this.Font, Brushes.Black, location);
Another thing to note is that you'll have to play with the offsets a little because some fonts have margins and bolded fonts take up more room.
Item is not a
SubItem then just implement the
e.DrawDefault = true; for the
DrawSubItem event - and vica versa if the item is a
SubItem then implement that line for