Articles in this section
Category / Section

How to draw text, on top of the Grid like a watermark in WinForms GridControl?

1 min read

Watermark

You can achieve this by deriving the Grid and overriding the OnPaint method. During override, call the baseclass, and then use e.Graphics.DrawString to draw the string.

C#

public class MyGridControl : GridControl
{
  public MyGridControl()
  {
    this.SmoothControlResize = false;
  }
  private bool isApproved = true;
  protected override void OnPaint(System.Windows.Forms.PaintEventArgs pe)
  {
    base.OnPaint(pe);
    if(isApproved)
    {
       string s = "Approved";
       Brush br = Brushes.LightPink;
       StringFormat format = new StringFormat();
       format.LineAlignment = StringAlignment.Center;
       format.Alignment = StringAlignment.Center;
       format.Trimming = StringTrimming.None;
       format.FormatFlags = StringFormatFlags.NoWrap;
       int orientation = -45;
       float angle = (float) orientation;
       Font fnt = new Font("Arial", 20, FontStyle.Bold | FontStyle.Underline);
       RotatePaint.DrawRotatedString(pe.Graphics, s, fnt, br, this.Bounds, format, angle);
    }
}

VB

Public Class MyGridControl Inherits GridControl
   Public Sub New()
     Me.SmoothControlResize = False
   End Sub
   Private isApproved As Boolean = True
   Protected Overrides Sub OnPaint(ByVal pe As System.Windows.Forms.PaintEventArgs)
   MyBase.OnPaint(pe)
   If isApproved Then
     Dim s As String = "Approved"
     Dim br As Brush = Brushes.LightPink
     Dim format As New StringFormat()
     format.LineAlignment = StringAlignment.Center
     format.Alignment = StringAlignment.Center
     format.Trimming = StringTrimming.None
     format.FormatFlags = StringFormatFlags.NoWrap
     Dim orientation As Integer = -45
     Dim angle As Single = CSng(orientation)
     Dim fnt As New Font("Arial", 20, FontStyle.Bold Or FontStyle.Underline)
RotatePaint.DrawRotatedString(pe.Graphics, s, fnt, br, Me.Bounds, format, angle)
   End If
End Sub

After applying the properties, the Grid is displayed as follows.

Drawing text on Grid like a watermark

Figure 1: Drawing text on grid like a watermark

Samples:

C#: WaterMark_Text

VB: WaterMark_Text

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied