Простая графика вызывающая режим перерыва
Привет,
SetStyle и e.Graphics в моем переопределении onPaint просто не будут работать вместе и отправляют мое приложение в неоднозначный режим прерывания.
Вот код.:
Public Class CustomProgressbar Inherits Control Private loaded As Boolean = False Public Sub New() SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or ControlStyles.DoubleBuffer, True) End Sub Public Sub init() loaded = True End Sub Protected Overrides Sub OnPaint(e As PaintEventArgs) If Not loaded Then Return Using g As Graphics = e.Graphics ' g.FillRectangle(New LinearGradientBrush(New Rectangle(0, 0, Width + 1, Height + 1), GraphicsUtils._c(178, 178, 178), GraphicsUtils._c(140, 140, 140), 90), New Rectangle(0, 0, Width + 1, Height + 1)) ' g.FillRectangle(New LinearGradientBrush(New Rectangle(1, 1, Width - 2, Height - 2), GraphicsUtils._c(242, 242, 242), GraphicsUtils._c(226, 226, 226), 90), New Rectangle(1, 1, Width - 2, Height - 2)) ' If Not _v = 0 Then ' Dim c As Color = GraphicsUtils._c(150, 0, 255) ' Dim h As HslColor = HslColor.fromColor(c) ' g.FillRectangle(New LinearGradientBrush(New Rectangle(2, 2, _v, Height - 5), (h - New HslColor(0, 0, 0.037)).toColor(), (h - New HslColor(0, 0, 0.206)).toColor(), 90), New Rectangle(2, 2, _v, Height - 5)) ' g.DrawLine(GraphicsUtils._p((h - New HslColor(0, 0, 0.02)).toColor()), 2, Height - 3, _v + 1, Height - 3) ' End If End Using End Sub
Что я уже пробовал:
Если я удалю оператор Using, он будет работать нормально. Если я удалю оператор SetStyle, он тоже будет работать нормально. Я пробовал изменить время вызова init() на событие загрузки формы, на нажатие кнопки, но ничего не работает.