hi i found this code online but it keeps giving me a syntax error wondering if sone one could help please.
the full code
the error line ------ New DataGridViewGlassRenderer(dgv)
the full code
Code:
Imports System.Data
Imports System.Data.SqlClient
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles
Public Class Form1
Inherits Form
<STAThread> _
Private Shared Sub Main()
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
Application.Run(New Form1())
End Sub
Public Sub New()
Dim dgv = New DataGridView() With { _
Key .Dock = DockStyle.Fill _
}
Dim table = New DataTable()
Using adapter = New SqlDataAdapter("Select * From Customers", "Data Source=Server1;Initial Catalog=Northwind;Integrated Security=SSPI;")
adapter.Fill(table)
End Using
dgv.DataSource = table
Controls.Add(dgv)
DataGridViewGlassRenderer.AttachTo(dgv)
End Sub
End Class
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Class DataGridViewGlassRenderer
Private hoverMouseRow As Integer = -1
Private Shared selectedRenderer As New VisualStyleRenderer(VisualStyleElement.Header.Item.Pressed)
Private Shared hotRenderer As New VisualStyleRenderer(VisualStyleElement.Header.Item.Hot)
Private Sub New(dgv As DataGridView)
dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect
AddHandler dgv.RowPrePaint, New DataGridViewRowPrePaintEventHandler(AddressOf dgv_RowPrePaint)
AddHandler dgv.CellMouseEnter, New DataGridViewCellEventHandler(AddressOf dgv_CellMouseEnter)
AddHandler dgv.CellMouseLeave, New DataGridViewCellEventHandler(AddressOf dgv_CellMouseLeave)
End Sub
Public Shared Sub AttachTo(dgv As DataGridView)
New DataGridViewGlassRenderer(dgv)
End Sub
Private Sub dgv_CellMouseLeave(sender As Object, e As DataGridViewCellEventArgs)
Dim dgv As DataGridView = DirectCast(sender, DataGridView)
If hoverMouseRow >= 0 Then
dgv.InvalidateRow(hoverMouseRow)
End If
hoverMouseRow = -1
End Sub
Private Sub dgv_CellMouseEnter(sender As Object, e As DataGridViewCellEventArgs)
Dim dgv As DataGridView = DirectCast(sender, DataGridView)
If hoverMouseRow >= 0 Then
dgv.InvalidateRow(hoverMouseRow)
End If
hoverMouseRow = e.RowIndex
If hoverMouseRow >= 0 Then
dgv.InvalidateRow(hoverMouseRow)
End If
End Sub
Private Sub dgv_RowPrePaint(sender As Object, e As DataGridViewRowPrePaintEventArgs)
Dim dgv As DataGridView = DirectCast(sender, DataGridView)
If Application.RenderWithVisualStyles AndAlso dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect Then
If (e.State And DataGridViewElementStates.Selected) = DataGridViewElementStates.Selected Then
RenderGlass(e, dgv, selectedRenderer)
ElseIf hoverMouseRow = e.RowIndex Then
RenderGlass(e, dgv, hotRenderer)
End If
End If
End Sub
Private Shared Sub RenderGlass(e As DataGridViewRowPrePaintEventArgs, dgv As DataGridView, renderer As VisualStyleRenderer)
' Caclulate the row rectangle
Dim rc As Rectangle = e.RowBounds
rc.Width = dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible)
If dgv.RowHeadersVisible Then
rc.Width += dgv.RowHeadersWidth
End If
If rc.IntersectsWith(e.ClipBounds) Then
e.PaintHeader(DataGridViewPaintParts.Background)
renderer.DrawBackground(e.Graphics, rc)
e.PaintHeader(DataGridViewPaintParts.ContentBackground Or DataGridViewPaintParts.Border Or DataGridViewPaintParts.ContentForeground Or DataGridViewPaintParts.ErrorIcon)
e.PaintCells(e.ClipBounds, e.PaintParts And Not (DataGridViewPaintParts.SelectionBackground Or DataGridViewPaintParts.Background))
e.Handled = True
End If
End Sub
End Class
the error line ------ New DataGridViewGlassRenderer(dgv)
Code:
Public Shared Sub AttachTo(dgv As DataGridView)
New DataGridViewGlassRenderer(dgv)
End Sub