VB.Net Tutorial/GUI/Form Action Event
Содержание
- 1 Add Key event to Form window
- 2 Close a Form
- 3 Convert Mouse event to form caption drag and drop event
- 4 Form Events Illustration
- 5 Form Layout event
- 6 Form mouse event: Mouse Enter, Mouse Down, Mouse Hover, Mouse, Move, Mouse Up, Mouse Wheel, Mouse Leave
- 7 Form resize event
- 8 Form Resize: fixed ratio
- 9 Message Filter
- 10 Overrides OnNotifyMessage method
- 11 Show Form Message
Add Key event to Form window
<source lang="vbnet">Imports System.Windows.Forms public class FormEventKey
public Shared Sub Main Application.Run(New Form1) End Sub
End class
Public Class Form1
Inherits System.Windows.Forms.Form
- Region " Windows Form Designer generated code "
Public Sub New() MyBase.New() "This call is required by the Windows Form Designer. InitializeComponent() "Add any initialization after the InitializeComponent() call End Sub "Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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. Friend WithEvents keyDataLabel As System.Windows.Forms.Label Friend WithEvents label1 As System.Windows.Forms.Label Friend WithEvents label2 As System.Windows.Forms.Label Friend WithEvents keyCodeLabel As System.Windows.Forms.Label Friend WithEvents modifiersLabel As System.Windows.Forms.Label Friend WithEvents label4 As System.Windows.Forms.Label Friend WithEvents keyValueLabel As System.Windows.Forms.Label Friend WithEvents label5 As System.Windows.Forms.Label Friend WithEvents label3 As System.Windows.Forms.Label Friend WithEvents keyCharLabel As System.Windows.Forms.Label <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.keyDataLabel = New System.Windows.Forms.Label() Me.label1 = New System.Windows.Forms.Label() Me.label2 = New System.Windows.Forms.Label() Me.keyCodeLabel = New System.Windows.Forms.Label() Me.modifiersLabel = New System.Windows.Forms.Label() Me.label4 = New System.Windows.Forms.Label() Me.keyValueLabel = New System.Windows.Forms.Label() Me.label5 = New System.Windows.Forms.Label() Me.label3 = New System.Windows.Forms.Label() Me.keyCharLabel = New System.Windows.Forms.Label() Me.SuspendLayout() " "keyDataLabel " Me.keyDataLabel.Anchor = ((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right) Me.keyDataLabel.Location = New System.Drawing.Point(120, 8) Me.keyDataLabel.Name = "keyDataLabel" Me.keyDataLabel.Size = New System.Drawing.Size(228, 23) Me.keyDataLabel.TabIndex = 9 " "label1 " Me.label1.Location = New System.Drawing.Point(8, 8) Me.label1.Name = "label1" Me.label1.TabIndex = 5 Me.label1.Text = "KeyData" " "label2 " Me.label2.Location = New System.Drawing.Point(8, 40) Me.label2.Name = "label2" Me.label2.TabIndex = 6 Me.label2.Text = "KeyCode" " "keyCodeLabel " Me.keyCodeLabel.Anchor = ((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right) Me.keyCodeLabel.Location = New System.Drawing.Point(120, 40) Me.keyCodeLabel.Name = "keyCodeLabel" Me.keyCodeLabel.Size = New System.Drawing.Size(228, 23) Me.keyCodeLabel.TabIndex = 10 " "modifiersLabel " Me.modifiersLabel.Anchor = ((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right) Me.modifiersLabel.Location = New System.Drawing.Point(120, 72) Me.modifiersLabel.Name = "modifiersLabel" Me.modifiersLabel.Size = New System.Drawing.Size(228, 23) Me.modifiersLabel.TabIndex = 11 " "label4 " Me.label4.Location = New System.Drawing.Point(8, 72) Me.label4.Name = "label4" Me.label4.TabIndex = 4 Me.label4.Text = "Modifiers" " "keyValueLabel " Me.keyValueLabel.Anchor = ((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right) Me.keyValueLabel.Location = New System.Drawing.Point(120, 104) Me.keyValueLabel.Name = "keyValueLabel" Me.keyValueLabel.Size = New System.Drawing.Size(228, 23) Me.keyValueLabel.TabIndex = 8 " "label5 " Me.label5.Location = New System.Drawing.Point(8, 104) Me.label5.Name = "label5" Me.label5.TabIndex = 3 Me.label5.Text = "KeyValue" " "label3 " Me.label3.Location = New System.Drawing.Point(8, 136) Me.label3.Name = "label3" Me.label3.TabIndex = 2 Me.label3.Text = "KeyChar" " "keyCharLabel " Me.keyCharLabel.Anchor = ((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right) Me.keyCharLabel.Location = New System.Drawing.Point(120, 136) Me.keyCharLabel.Name = "keyCharLabel" Me.keyCharLabel.Size = New System.Drawing.Size(228, 23) Me.keyCharLabel.TabIndex = 7 " "Form1 " Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(328, 174) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.keyDataLabel, Me.label1, Me.label2, Me.keyCodeLabel, Me.modifiersLabel, Me.label4, Me.keyValueLabel, Me.label5, Me.label3, Me.keyCharLabel}) Me.Name = "Form1" Me.Text = "KeyTest" Me.ResumeLayout(False) End Sub
- End Region
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown keyDataLabel.Text = e.KeyData.ToString() keyCodeLabel.Text = e.KeyCode.ToString() modifiersLabel.Text = e.Modifiers.ToString() keyValueLabel.Text = e.KeyValue.ToString() End Sub Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress keyCharLabel.Text = e.KeyChar.ToString() End Sub
End Class</source>
Close a Form
<source lang="vbnet">Imports System.Windows.Forms public class FormCloseAction
public Shared Sub Main Application.Run(New Form1) End Sub
End class
Public Class Form1
Inherits System.Windows.Forms.Form
- Region " Windows Form Designer generated code "
Public Sub New() MyBase.New() "This call is required by the Windows Form Designer. InitializeComponent() "Add any initialization after the InitializeComponent() call End Sub "Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If Disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(Disposing) End Sub Private WithEvents btnClose As System.Windows.Forms.Button "Required by the Windows Form Designer Private components As System.ruponentModel.Container "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.btnClose = New System.Windows.Forms.Button() Me.SuspendLayout() " "btnClose " Me.btnClose.Location = New System.Drawing.Point(108, 102) Me.btnClose.Name = "btnClose" Me.btnClose.Size = New System.Drawing.Size(56, 32) Me.btnClose.TabIndex = 0 Me.btnClose.Text = "Close" " "Form1 " Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(272, 237) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnClose}) Me.Name = "Form1" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "Form1" Me.ResumeLayout(False) End Sub
- End Region
Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click Dim drQuit As DialogResult drQuit = MessageBox.Show("Do you really want to quit?", _ "Exit Confirmation", _ MessageBoxButtons.YesNo, _ MessageBoxIcon.Warning, _ MessageBoxDefaultButton.Button2) If drQuit = DialogResult.Yes Then Me.Close() End Sub
End Class</source>
<source lang="vbnet">Imports System.Windows.Forms public class ConvertMouseEventToFormDragEvent
public Shared Sub Main Application.Run(New Form1) End Sub
End class
Public Class Form1
Const HT_CAPTION As Integer = &H2 Const WM_NCLBUTTONDOWN As Integer = &HA1 Private Sub DragBar_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DragBar.MouseDown If (e.Button = Windows.Forms.MouseButtons.Left) Then DragBar.Capture = False Me.WndProc(Message.Create(Me.Handle, WM_NCLBUTTONDOWN, _ CType(HT_CAPTION, IntPtr), IntPtr.Zero)) End If End Sub Private Sub ActClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ActClose.Click Me.Close() End Sub
End Class
<Global.Microsoft.VisualBasic.rupilerServices.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) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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.ActClose = New System.Windows.Forms.Button Me.DragBar = New System.Windows.Forms.PictureBox CType(Me.DragBar, System.ruponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() " "ActClose " Me.ActClose.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.ActClose.Location = New System.Drawing.Point(208, 80) Me.ActClose.Name = "ActClose" Me.ActClose.Size = New System.Drawing.Size(75, 23) Me.ActClose.TabIndex = 0 Me.ActClose.Text = "Close" Me.ActClose.UseVisualStyleBackColor = True " "DragBar " Me.DragBar.BackColor = System.Drawing.SystemColors.ActiveCaption Me.DragBar.Location = New System.Drawing.Point(8, 8) Me.DragBar.Name = "DragBar" Me.DragBar.Size = New System.Drawing.Size(280, 24) Me.DragBar.TabIndex = 1 Me.DragBar.TabStop = False " "Form1 " Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.CancelButton = Me.ActClose Me.ClientSize = New System.Drawing.Size(292, 114) Me.Controls.Add(Me.DragBar) Me.Controls.Add(Me.ActClose) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None Me.Name = "Form1" Me.Text = "Form1" CType(Me.DragBar, System.ruponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub Friend WithEvents ActClose As System.Windows.Forms.Button Friend WithEvents DragBar As System.Windows.Forms.PictureBox
End Class</source>
Form Events Illustration
<source lang="vbnet">Imports System.Diagnostics Imports System.Windows.Forms public class FormEvents
public Shared Sub Main Application.Run(New Form1) End Sub
End class
Public Class Form1
Inherits System.Windows.Forms.Form
- Region " Windows Form Designer generated code "
Public Sub New() MyBase.New() "This call is required by the Windows Form Designer. InitializeComponent() "Add any initialization after the InitializeComponent() call Console.WriteLine("New Event Fired") End Sub "Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) Console.WriteLine("Dispose Method Executed") If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Friend WithEvents btnLoop As System.Windows.Forms.Button Friend WithEvents btnRemember As System.Windows.Forms.Button Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents Button3 As System.Windows.Forms.Button "Required by the Windows Form Designer Private components As System.ruponentModel.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.btnLoop = New System.Windows.Forms.Button() Me.btnRemember = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button() Me.Button3 = New System.Windows.Forms.Button() Me.SuspendLayout() " "btnLoop " Me.btnLoop.Location = New System.Drawing.Point(24, 56) Me.btnLoop.Name = "btnLoop" Me.btnLoop.TabIndex = 0 Me.btnLoop.Text = "Loop" " "btnRemember " Me.btnRemember.Location = New System.Drawing.Point(136, 56) Me.btnRemember.Name = "btnRemember" Me.btnRemember.Size = New System.Drawing.Size(112, 23) Me.btnRemember.TabIndex = 1 Me.btnRemember.Text = "Remember Position" " "Button1 " Me.Button1.Location = New System.Drawing.Point(24, 16) Me.Button1.Name = "Button1" Me.Button1.TabIndex = 2 Me.Button1.Text = "Button1" " "Button2 " Me.Button2.Location = New System.Drawing.Point(128, 16) Me.Button2.Name = "Button2" Me.Button2.TabIndex = 3 Me.Button2.Text = "Button2" " "Button3 " Me.Button3.Location = New System.Drawing.Point(224, 16) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(72, 24) Me.Button3.TabIndex = 4 Me.Button3.Text = "Button3" " "Form1 " Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(320, 134) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button3, Me.Button2, Me.Button1, Me.btnRemember, Me.btnLoop}) Me.Name = "Form1" Me.Text = "Event-O-Rama" Me.ResumeLayout(False) End Sub
- End Region
Dim formsize As System.Drawing.Size Dim formlocation As System.Drawing.Point
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Console.WriteLine("Load Event Fired") formsize = Me.Size formlocation = Me.Location End Sub Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated Console.WriteLine("Activated Event Fired") End Sub Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed Console.WriteLine("Closed Event Fired") End Sub Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ruponentModel.CancelEventArgs) Handles MyBase.Closing Console.WriteLine("Closing Event Fired") Dim answer As MsgBoxResult answer = MsgBox("Do you want to close this window?", MsgBoxStyle.YesNo, "Demonstration of the Closing event") If answer = MsgBoxResult.No Then e.Cancel = True End If End Sub Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click Console.WriteLine("Click Event Fired") End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove Console.WriteLine("MouseMove Event Fired") End Sub Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize Console.WriteLine("Resize Event Fired " & Me.Size.Width.ToString()) End Sub Private Sub Form1_Deactivate(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate Console.WriteLine("Deactivate Event Fired") End Sub Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Console.WriteLine("Paint Event Fired") End Sub Private Sub Form1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Leave Console.WriteLine("Leave Event Fired") End Sub Private Sub Form1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Enter Console.WriteLine("Enter Event Fired") End Sub
Private Sub btnLoop_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLoop.Enter Console.WriteLine("btnLoop Enter Event Fired") "btnLoop_Leave(sender, e) End Sub Private Sub btnLoop_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLoop.Leave Console.WriteLine("btnLoop Leave Event Fired") "btnLoop_Enter(sender, e) End Sub Private Sub btnRemember_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRemember.Click Me.Size = formsize Me.Location = formlocation End Sub Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Button1.Click, Button2.Click, Button3.Click MsgBox(sender.Text & " was clicked!") End Sub
End Class</source>
Form Layout event
<source lang="vbnet">Imports System.Windows.Forms public class FormLayoutEvent
public Shared Sub Main Application.Run(New GridForm) End Sub
End class Public Class GridForm
Inherits System.Windows.Forms.Form
- Region " Windows Form Designer generated code "
Public Sub New() MyBase.New() "This call is required by the Windows Form Designer. InitializeComponent() "Add any initialization after the InitializeComponent() call End Sub "Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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. Friend WithEvents button1 As System.Windows.Forms.Button Friend WithEvents button2 As System.Windows.Forms.Button Friend WithEvents button3 As System.Windows.Forms.Button Friend WithEvents button4 As System.Windows.Forms.Button Friend WithEvents button5 As System.Windows.Forms.Button Friend WithEvents button6 As System.Windows.Forms.Button Friend WithEvents button7 As System.Windows.Forms.Button Friend WithEvents button8 As System.Windows.Forms.Button Friend WithEvents button9 As System.Windows.Forms.Button <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.button1 = New System.Windows.Forms.Button() Me.button2 = New System.Windows.Forms.Button() Me.button3 = New System.Windows.Forms.Button() Me.button4 = New System.Windows.Forms.Button() Me.button5 = New System.Windows.Forms.Button() Me.button6 = New System.Windows.Forms.Button() Me.button7 = New System.Windows.Forms.Button() Me.button8 = New System.Windows.Forms.Button() Me.button9 = New System.Windows.Forms.Button() Me.SuspendLayout() " "button1 " Me.button1.Location = New System.Drawing.Point(8, 8) Me.button1.Name = "button1" Me.button1.Size = New System.Drawing.Size(75, 75) Me.button1.TabIndex = 7 Me.button1.Text = "1" " "button2 " Me.button2.Location = New System.Drawing.Point(88, 8) Me.button2.Name = "button2" Me.button2.Size = New System.Drawing.Size(75, 75) Me.button2.TabIndex = 6 Me.button2.Text = "2" " "button3 " Me.button3.Location = New System.Drawing.Point(168, 8) Me.button3.Name = "button3" Me.button3.Size = New System.Drawing.Size(75, 75) Me.button3.TabIndex = 9 Me.button3.Text = "3" " "button4 " Me.button4.Location = New System.Drawing.Point(8, 88) Me.button4.Name = "button4" Me.button4.Size = New System.Drawing.Size(75, 75) Me.button4.TabIndex = 8 Me.button4.Text = "4" " "button5 " Me.button5.Location = New System.Drawing.Point(88, 88) Me.button5.Name = "button5" Me.button5.Size = New System.Drawing.Size(75, 75) Me.button5.TabIndex = 5 Me.button5.Text = "5" " "button6 " Me.button6.Location = New System.Drawing.Point(168, 88) Me.button6.Name = "button6" Me.button6.Size = New System.Drawing.Size(75, 75) Me.button6.TabIndex = 2 Me.button6.Text = "6" " "button7 " Me.button7.Location = New System.Drawing.Point(8, 168) Me.button7.Name = "button7" Me.button7.Size = New System.Drawing.Size(75, 75) Me.button7.TabIndex = 1 Me.button7.Text = "7" " "button8 " Me.button8.Location = New System.Drawing.Point(88, 168) Me.button8.Name = "button8" Me.button8.Size = New System.Drawing.Size(75, 75) Me.button8.TabIndex = 4 Me.button8.Text = "8" " "button9 " Me.button9.Location = New System.Drawing.Point(168, 168) Me.button9.Name = "button9" Me.button9.Size = New System.Drawing.Size(75, 75) Me.button9.TabIndex = 3 Me.button9.Text = "9" " "Form1 " Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(248, 246) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.button1, Me.button2, Me.button3, Me.button4, Me.button5, Me.button6, Me.button7, Me.button8, Me.button9}) Me.Name = "Form1" Me.Text = "Grid Layout Example" Me.ResumeLayout(False) End Sub
- End Region
Private Sub GridForm_Layout(ByVal sender As Object, ByVal e As System.Windows.Forms.LayoutEventArgs) Handles MyBase.Layout Dim buttons As Button() = New Button() {button1, button2, button3, button4, button5, button6, button7, button8, button9} Dim cx As Integer = ClientRectangle.Width / 3 Dim cy As Integer = ClientRectangle.Height / 3 Dim row As Integer = 0 Do While row < 3 Dim col As Integer = 0 Do While col < 3 Dim b As Button = buttons(col * 3 + row) b.Text = "Button" b.SetBounds(cx * row, cy * col, cx, cy) col = col + 1 Loop row = row + 1 Loop SetClientSizeCore(cx * 3, cy * 3) End Sub
End Class</source>
Form mouse event: Mouse Enter, Mouse Down, Mouse Hover, Mouse, Move, Mouse Up, Mouse Wheel, Mouse Leave
<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class FormMouseEvent
public Shared Sub Main Application.Run(New Form1) End Sub
End class Public Class Form1
Inherits System.Windows.Forms.Form
- Region " Windows Form Designer generated code "
Public Sub New() MyBase.New() "This call is required by the Windows Form Designer. InitializeComponent() "Add any initialization after the InitializeComponent() call End Sub "Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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. Friend WithEvents TextBox1 As System.Windows.Forms.TextBox <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.TextBox1 = New System.Windows.Forms.TextBox Me.SuspendLayout() " "TextBox1 " Me.TextBox1.Location = New System.Drawing.Point(16, 48) Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(256, 20) Me.TextBox1.TabIndex = 0 Me.TextBox1.Text = "" " "Form1 " Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(Me.TextBox1) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) End Sub
- End Region
Private Sub Form1_MouseEnter(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.MouseEnter TextBox1.Text = "The mouse entered the client area." End Sub Private Sub Form1_MouseDown(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseDown If e.Button = MouseButtons.Left Then TextBox1.Text = "The left mouse button is down at (" & CStr(e.X) & ", " & CStr(e.Y) & ")" End If End Sub Private Sub Form1_MouseHover(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.MouseHover TextBox1.Text = "The mouse is hovering." End Sub Private Sub Form1_MouseMove(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseMove TextBox1.Text = "The mouse moved to: (" & CStr(e.X) & ", " & CStr(e.Y) & ")" End Sub Private Sub Form1_MouseUp(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseUp If e.Button = MouseButtons.Left Then TextBox1.Text = "The left mouse button went up at (" & CStr(e.X) & ", " & CStr(e.Y) & ")" End If End Sub Private Sub Form1_MouseWheel(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) _ Handles MyBase.MouseWheel TextBox1.Text = "The mouse wheel rotated " & CStr(e.Delta) & " detents" End Sub Private Sub Form1_MouseLeave(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.MouseLeave TextBox1.Text = "The mouse left the client area." End Sub
End Class</source>
Form resize event
<source lang="vbnet">Imports System.Windows.Forms public class FormResizeEvent
public Shared Sub Main Application.Run(New Form1) End Sub
End class Public Class Form1
Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize GroupBox1.Top = 0 GroupBox1.Left = 0 GroupBox1.Width = Me.Width GroupBox1.Height = Me.Height Label1.Left = GroupBox1.Top + 10 Label1.Top = GroupBox1.Left + 20 TextBox1.Top = Label1.Top + 50 TextBox1.Left = Label1.Left TextBox1.Width = GroupBox1.Width - 20 End Sub
End Class <Global.Microsoft.VisualBasic.rupilerServices.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) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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.GroupBox1 = New System.Windows.Forms.GroupBox Me.TextBox1 = New System.Windows.Forms.TextBox Me.Label1 = New System.Windows.Forms.Label Me.GroupBox1.SuspendLayout() Me.SuspendLayout() " "GroupBox1 " Me.GroupBox1.Controls.Add(Me.TextBox1) Me.GroupBox1.Controls.Add(Me.Label1) Me.GroupBox1.Location = New System.Drawing.Point(12, 12) Me.GroupBox1.Name = "GroupBox1" Me.GroupBox1.Size = New System.Drawing.Size(392, 195) Me.GroupBox1.TabIndex = 0 Me.GroupBox1.TabStop = False Me.GroupBox1.Text = "GroupBox1" " "TextBox1 " Me.TextBox1.Location = New System.Drawing.Point(32, 62) Me.TextBox1.Multiline = True Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(331, 21) Me.TextBox1.TabIndex = 5 " "Label1 " Me.Label1.AutoSize = True Me.Label1.Location = New System.Drawing.Point(30, 30) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(41, 12) Me.Label1.TabIndex = 4 Me.Label1.Text = "Label1" " "Form1 " Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(416, 219) Me.Controls.Add(Me.GroupBox1) Me.Name = "Form1" Me.Text = "Form1" Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() Me.ResumeLayout(False) End Sub Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox Friend WithEvents TextBox1 As System.Windows.Forms.TextBox Friend WithEvents Label1 As System.Windows.Forms.Label
End Class</source>
Form Resize: fixed ratio
<source lang="vbnet">"Visual Basic 2005 Programmer"s Reference "by Rod Stephens (Author) "# Publisher: Wrox (October 21, 2005) "# Language: English "# ISBN-10: 0764571982 "# ISBN-13: 978-0764571985 Imports System.Runtime.InteropServices Imports System.Windows.Forms public class FixedRatio
public Shared Sub Main Application.Run(New Form1) End Sub
End class
Public Class Form1
Public Structure Rect Public left As Integer Public top As Integer Public right As Integer Public bottom As Integer End Structure Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Const WM_SIZING As Long = &H214 Const WMSZ_LEFT As Integer = 1 Const WMSZ_RIGHT As Integer = 2 Const WMSZ_TOP As Integer = 3 Const WMSZ_TOPLEFT As Integer = 4 Const WMSZ_TOPRIGHT As Integer = 5 Const WMSZ_BOTTOM As Integer = 6 Const WMSZ_BOTTOMLEFT As Integer = 7 Const WMSZ_BOTTOMRIGHT As Integer = 8 Static fixed_aspect_ratio As Double = 0 Dim new_aspect_ratio As Double If m.Msg = WM_SIZING And m.HWnd.Equals(Me.Handle) Then " Turn the message¡�s lParam into a Rect. Dim r As Rect r = DirectCast( _ Marshal.PtrToStructure(m.LParam, GetType(Rect)), _ Rect) " Get the current dimensions. Dim wid As Double = r.right - r.left Dim hgt As Double = r.bottom - r.top " Get the new aspect ratio. new_aspect_ratio = hgt / wid " The first time, save the form¡�s aspect ratio. If fixed_aspect_ratio = 0 Then fixed_aspect_ratio = new_aspect_ratio End If " See if the aspect ratio is changing. If fixed_aspect_ratio <> new_aspect_ratio Then " To decide which dimension we should preserve, " see what border the user is dragging. If m.WParam.ToInt32 = WMSZ_TOPLEFT Or _ m.WParam.ToInt32 = WMSZ_TOPRIGHT Or _ m.WParam.ToInt32 = WMSZ_BOTTOMLEFT Or _ m.WParam.ToInt32 = WMSZ_BOTTOMRIGHT _ Then " The user is dragging a corner. " Preserve the bigger dimension. If new_aspect_ratio > fixed_aspect_ratio Then " It¡�s too tall and thin. Make it wider. wid = hgt / fixed_aspect_ratio Else " It¡�s too short and wide. Make it taller. hgt = wid * fixed_aspect_ratio End If ElseIf m.WParam.ToInt32 = WMSZ_LEFT Or _ m.WParam.ToInt32 = WMSZ_RIGHT _ Then " The user is dragging a side. " Preserve the width. hgt = wid * fixed_aspect_ratio ElseIf m.WParam.ToInt32 = WMSZ_TOP Or _ m.WParam.ToInt32 = WMSZ_BOTTOM _ Then " The user is dragging the top or bottom. " Preserve the height. wid = hgt / fixed_aspect_ratio End If " Figure out whether to reset the top/bottom " and left/right. " See if the user is dragging the top edge. If m.WParam.ToInt32 = WMSZ_TOP Or _ m.WParam.ToInt32 = WMSZ_TOPLEFT Or _ m.WParam.ToInt32 = WMSZ_TOPRIGHT _ Then " Reset the top. r.top = r.bottom - CInt(hgt) Else " Reset the bottom. r.bottom = r.top + CInt(hgt) End If " See if the user is dragging the left edge. If m.WParam.ToInt32 = WMSZ_LEFT Or _ m.WParam.ToInt32 = WMSZ_TOPLEFT Or _ m.WParam.ToInt32 = WMSZ_BOTTOMLEFT _ Then " Reset the left. r.left = r.right - CInt(wid) Else " Reset the right. r.right = r.left + CInt(wid) End If " Update the Message object¡�s LParam field. Marshal.StructureToPtr(r, m.LParam, True) End If End If MyBase.WndProc(m) End Sub
End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public 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) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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.SuspendLayout() " "Form1 " Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Name = "Form1" Me.Text = "FixedAspectRatio" Me.ResumeLayout(False) End Sub
End Class</source>
Message Filter
<source lang="vbnet">Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms Imports System.Math public class MessageFilter
public Shared Sub Main Application.Run(New Form1) End Sub
End class Public Class Form1
Public Class NoLeftDownMessageFilter Implements IMessageFilter Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) As Boolean Implements IMessageFilter.PreFilterMessage Const WM_LBUTTONDOWN As Long = &H201 Return (m.Msg = WM_LBUTTONDOWN) End Function End Class Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim no_left_down_message_filter As New NoLeftDownMessageFilter Application.AddMessageFilter(no_left_down_message_filter) End Sub Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Application.UseWaitCursor = Not Application.UseWaitCursor End Sub
End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public Class Form1
Inherits System.Windows.Forms.Form "Form overrides dispose to clean up the component list. <System.Diagnostics.DebuggerNonUserCode()> _ Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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.SuspendLayout() " "Form1 " Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Name = "Form1" Me.Text = "UseMessageFilter" Me.ResumeLayout(False) End Sub
End Class</source>
Overrides OnNotifyMessage method
<source lang="vbnet">Imports System.Windows.Forms Imports System.IO
Public Class WndProcTextBox
Inherits TextBox
- Region " Component Designer generated code "
Public Sub New(ByVal Container As System.ruponentModel.IContainer) MyClass.New() "Required for Windows.Forms Class Composition Designer support Container.Add(Me) End Sub Public Sub New() MyBase.New() "This call is required by the Component Designer. InitializeComponent() "Add any initialization after the InitializeComponent() call Me.SetStyle(ControlStyles.EnableNotifyMessage, True) End Sub "Component overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub "Required by the Component Designer Private components As System.ruponentModel.IContainer "NOTE: The following procedure is required by the Component Designer "It can be modified using the Component Designer. "Do not modify it using the code editor. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() components = New System.ruponentModel.Container() End Sub
- End Region
Public Delegate Sub ShowEventInfo(ByVal info As String) Public Event ShowEventInfoEvent As ShowEventInfo
Protected Overrides Sub OnNotifyMessage(ByVal m As System.Windows.Forms.Message) RaiseEvent ShowEventInfoEvent(String.Format("Msg: HWND({0}) LPARAM({1}) WPARAM({2}) MSG({3})", m.HWnd, m.LParam, m.WParam, m.Msg)) MyBase.OnNotifyMessage(m) End Sub
End Class</source>
Show Form Message
<source lang="vbnet">Imports System.Windows.Forms public class OverrideWndProc
public Shared Sub Main Application.Run(New Form1) End Sub
End class Public Class Form1
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) Console.WriteLine(m.ToString) MyBase.WndProc(m) End Sub
End Class <Global.Microsoft.VisualBasic.rupilerServices.DesignerGenerated()> _ Partial Public 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) If disposing AndAlso components IsNot Nothing Then components.Dispose() End If MyBase.Dispose(disposing) End Sub "Required by the Windows Form Designer Private components As System.ruponentModel.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.SuspendLayout() " "Form1 " Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(292, 273) Me.Name = "Form1" Me.Text = "ShowMessages" Me.ResumeLayout(False) End Sub
End Class</source>