)
We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: June 24, 2019).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

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

Platform: WinForms |
Control: GridControl |
Published Date: April 30, 2011 |
Last Revised Date: December 17, 2019

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

2X faster development

The ultimate WinForms UI toolkit to boost your development speed.
ADD COMMENT
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile
Live Chat Icon