폼의 컨트롤에 대해 Paint
이벤트를 처리하려고했습니다. 그러나 이벤트는 결코 처리되지 않으며, 내가 뭘 잘못하고 있는지 확신하지 못합니다. 내가 이것을 입증하는 매우 간단한 윈폼 프로젝트를 만들었습니다 (나는 다른이 아무것도 없다는 것을 보여주기 위해 생성 된 디자이너 코드를 포함 시켰습니다) :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