How to display tooltip that vary from cell to cell in the WinForms GridControl?
Tooltip
You can use the System.Windows.Forms.Tooltip class to add tips that vary from cell to cell in an Essential Grid and it is performed using a MouseMove event handler. As you move to a different cell, you can turn off the current tip when it is visible and reset it with your new text depending upon the current cell. The following code example illustrates how to achieve this.
C#
//declaring ToolTip private System.Windows.Forms.ToolTip toolTip1; private int hooverRow = -1; private int hooverCol = -1; private void Form1_Load(object sender, EventArgs e) { //Initialize the tip with desired timing parameters this.toolTip1 = new System.Windows.Forms.ToolTip(); toolTip1.InitialDelay = 500; //Half a second delay toolTip1.ReshowDelay = 0; }
VB
'declaring ToolTip Private toolTip1 As System.Windows.Forms.ToolTip Private hooverRow As Integer = -1 Private hooverCol As Integer = -1 Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) 'Initialize the tip with desired timing parameters Me.toolTip1 = New System.Windows.Forms.ToolTip() toolTip1.InitialDelay = 500 'Half a second delay toolTip1.ReshowDelay = 0 End Sub
The following code example illustrates turning off/on ToolTip on MouseMove event.
C#
private void gridControl1_MouseMove(object sender, MouseEventArgs e) { int row, col; if(this.gridControl1.PointToRowCol(new Point(e.X, e.Y), out row, out col) && (col != hooverCol || row != hooverRow)) { hooverCol = col; hooverRow = row; if(this.toolTip1 != null && this.toolTip1.Active) this.toolTip1.Active = false; //Turn it off this.toolTip1.SetToolTip(this.gridControl1, string.Format("tooltip: row {0}, column {1}", hooverRow, hooverCol)); this.toolTip1.Active = true; //Make it active so it can show } }
VB
Private Sub gridControl1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Dim row, col As Integer If Me.gridControl1.PointToRowCol(New Point(e.X, e.Y), row, col) AndAlso (col <> hooverCol OrElse row <> hooverRow) Then hooverCol = col hooverRow = row If Me.toolTip1 IsNot Nothing AndAlso Me.toolTip1.Active Then Me.toolTip1.Active = False 'Turn it off End If Me.toolTip1.SetToolTip(Me.gridControl1, String.Format("tooltip: row {0}, column {1}", hooverRow, hooverCol)) Me.toolTip1.Active = True 'Make it active so it can show End If End Sub
The following screenshot illustrates the Tooltip in GridControl.
Figure 1: Tooltip in GridControl.