Zdravím, stala se mi nemilá věc a na tuto záhadu ne a ne přijít. Vytvořil jsem si toto:
Protected Overrides Sub Paint(ByVal graphics As System.Drawing.Graphics, ByVal clipBounds As System.Drawing.Rectangle, ByVal rowBounds As System.Drawing.Rectangle, ByVal rowIndex As Integer, ByVal rowState As System.Windows.Forms.DataGridViewElementStates, ByVal isFirstDisplayedRow As Boolean, ByVal isLastVisibleRow As Boolean)
'MyBase.Paint(graphics, clipBounds, rowBounds, rowIndex, rowState, isFirstDisplayedRow, isLastVisibleRow)
Dim delkaVykresleni As Integer = 0
Dim text As String = Me.textLabel
For Each column As DataGridViewColumn In Me.DataGridView.Columns
delkaVykresleni += column.Width
Next
Dim boundsMe As Rectangle = rowBounds
boundsMe.Size = New Size(delkaVykresleni, rowBounds.Height)
graphics.DrawRectangle(Pens.Red, boundsMe)
Dim brushMuj As Brush = New LinearGradientBrush(boundsMe, Color.LightSteelBlue, Color.CornflowerBlue, LinearGradientMode.Vertical)
graphics.FillRectangle(brushMuj, boundsMe)
Dim pad As Integer = 0
Dim pxText As Integer = graphics.MeasureString(text, Me.DataGridView.Font).Width
pad = (delkaVykresleni - pxText) / 2
Dim bod As Point = New Point(rowBounds.Left + pad, rowBounds.Top + 3)
graphics.DrawString(text, Me.DataGridView.Font, Brushes.Black, bod)
End Sub
Text, kterým naplňuji nadpis při prvním načtení je v pořádku, ale pokud přejdu z tohoto řádku jinam, tak při ztrátě focusu tohoto řádku dojde ke ztrátě hodnoty. Nevíte proč? Díky moc za pomoc.
|