Я пытался обработать событие Paint
для управления формой. Однако событие никогда не обрабатывается, и я не уверен, что я делаю неправильно. Я создал очень простой WinForms проект, чтобы продемонстрировать это (я включил сгенерированный код дизайнер, чтобы показать, что нет ничего другого там):Обработка события VScrollbar Paint
Form1.vb
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AddHandler VScrollBar1.Paint, AddressOf VScrollBar1_Paint
End Sub
Private Sub VScrollBar1_Paint (ByVal sender As Object, ByVal e As PaintEventArgs)
Dim str As String = "test"
System.Windows.Forms.MessageBox.Show(str)
End Sub
End Class
Form1.Designer.vb
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.VScrollBar1 = New System.Windows.Forms.VScrollBar()
Me.SuspendLayout
'
'VScrollBar1
'
Me.VScrollBar1.Location = New System.Drawing.Point(26, 56)
Me.VScrollBar1.Name = "VScrollBar1"
Me.VScrollBar1.Size = New System.Drawing.Size(17, 80)
Me.VScrollBar1.TabIndex = 0
'
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(284, 261)
Me.Controls.Add(Me.VScrollBar1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(false)
End Sub
Friend WithEvents VScrollBar1 As System.Windows.Forms.VScrollBar
End Class
Событие никогда не обрабатывается, но элемент управления рисуется правильно. Что мне не хватает?
Полосы прокрутки не создают события красок. Они окрашены внутри системы. Их нет. Вы просите прокрутки, вы получаете полосы прокрутки. Никогда не было веской причины переопределять внешний вид стандартной системы. –
Если вы откроете список событий для элемента управления, вы увидите, что нет события рисования. вы пытаетесь справиться с чем-то, что не предназначено для вас. – Plutonix