Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード " Public Sub New() MyBase.New() ' この呼び出しは Windows フォーム デザイナで必要です。 InitializeComponent() ' InitializeComponent() 呼び出しの後に初期化を追加します。 End Sub ' Form は、コンポーネント一覧に後処理を実行するために dispose をオーバーライドします。 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 ' Windows フォーム デザイナで必要です。 Private components As System.ComponentModel.IContainer ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。 'Windows フォーム デザイナを使って変更してください。 ' コード エディタを使って変更しないでください。 Friend WithEvents button1 As System.Windows.Forms.Button Friend WithEvents label6 As System.Windows.Forms.Label Friend WithEvents label5 As System.Windows.Forms.Label Friend WithEvents label4 As System.Windows.Forms.Label Friend WithEvents label3 As System.Windows.Forms.Label Friend WithEvents label2 As System.Windows.Forms.Label Friend WithEvents timer1 As System.Windows.Forms.Timer Friend WithEvents label1 As System.Windows.Forms.Label Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container Me.button1 = New System.Windows.Forms.Button Me.label6 = New System.Windows.Forms.Label Me.label5 = New System.Windows.Forms.Label Me.label4 = New System.Windows.Forms.Label Me.label3 = New System.Windows.Forms.Label Me.label2 = New System.Windows.Forms.Label Me.timer1 = New System.Windows.Forms.Timer(Me.components) Me.label1 = New System.Windows.Forms.Label Me.SuspendLayout() ' 'button1 ' Me.button1.Font = New System.Drawing.Font("MS UI Gothic", 48.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) Me.button1.Location = New System.Drawing.Point(16, 239) Me.button1.Name = "button1" Me.button1.Size = New System.Drawing.Size(440, 104) Me.button1.TabIndex = 13 Me.button1.Text = "ボタン" ' 'label6 ' Me.label6.Font = New System.Drawing.Font("MS UI Gothic", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) Me.label6.Location = New System.Drawing.Point(16, 159) Me.label6.Name = "label6" Me.label6.Size = New System.Drawing.Size(200, 64) Me.label6.TabIndex = 12 Me.label6.Text = "クライアント座標 (ボタン):" Me.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'label5 ' Me.label5.Font = New System.Drawing.Font("MS UI Gothic", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) Me.label5.Location = New System.Drawing.Point(16, 87) Me.label5.Name = "label5" Me.label5.Size = New System.Drawing.Size(200, 64) Me.label5.TabIndex = 11 Me.label5.Text = "クライアント座標(フォーム):" Me.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'label4 ' Me.label4.Font = New System.Drawing.Font("MS UI Gothic", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) Me.label4.Location = New System.Drawing.Point(16, 15) Me.label4.Name = "label4" Me.label4.Size = New System.Drawing.Size(200, 64) Me.label4.TabIndex = 10 Me.label4.Text = "スクリーン座標:" Me.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'label3 ' Me.label3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D Me.label3.Font = New System.Drawing.Font("MS UI Gothic", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) Me.label3.Location = New System.Drawing.Point(216, 159) Me.label3.Name = "label3" Me.label3.Size = New System.Drawing.Size(240, 64) Me.label3.TabIndex = 9 Me.label3.Text = "label3" Me.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'label2 ' Me.label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D Me.label2.Font = New System.Drawing.Font("MS UI Gothic", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) Me.label2.Location = New System.Drawing.Point(216, 87) Me.label2.Name = "label2" Me.label2.Size = New System.Drawing.Size(240, 64) Me.label2.TabIndex = 8 Me.label2.Text = "label2" Me.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'timer1 ' Me.timer1.Enabled = True Me.timer1.Interval = 10 ' 'label1 ' Me.label1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D Me.label1.Font = New System.Drawing.Font("MS UI Gothic", 18.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte)) Me.label1.Location = New System.Drawing.Point(216, 15) Me.label1.Name = "label1" Me.label1.Size = New System.Drawing.Size(240, 64) Me.label1.TabIndex = 7 Me.label1.Text = "label1" Me.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter ' 'Form1 ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 12) Me.ClientSize = New System.Drawing.Size(472, 358) Me.Controls.Add(Me.label6) Me.Controls.Add(Me.label5) Me.Controls.Add(Me.label4) Me.Controls.Add(Me.label3) Me.Controls.Add(Me.label2) Me.Controls.Add(Me.label1) Me.Controls.Add(Me.button1) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) End Sub #End Region Private Sub timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles timer1.Tick ' マウス・カーソルのスクリーン座標での位置を取得 label1.Text = Cursor.Position.ToString() ' フォームを基準に(スクリーン座標を)クライアント座標に変換 Dim formClientCurPos As Point = Me.PointToClient(Cursor.Position) label2.Text = formClientCurPos.ToString() ' ボタンを基準に(スクリーン座標を)クライアント座標に変換 Dim btnClientCurPos As Point = button1.PointToClient(Cursor.Position) label3.Text = btnClientCurPos.ToString() End Sub Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click ' ボタンのクライアント領域の原点を(クライアント座標で)取得 Dim btnClientLocation As Point = button1.ClientRectangle.Location ' (ボタンを基準に)クライアント座標からスクリーン座標に変換 ' ※注意:ボタンのクライアント座標をスクリーン座標に ' 変換するには、必ず<ボタンの>PointToScreenメソッドを使うこと Dim btnScreenLocation As Point = button1.PointToScreen(btnClientLocation) MessageBox.Show("ボタンのクライアント領域の原点は、" & vbLf & vbLf & _ _ "クライアント座標では" & _ btnClientLocation.ToString() & _ "になり、" & vbLf & vbLf & _ _ "スクリーン座標では" & _ btnScreenLocation.ToString() & _ "になる。") ' カーソルの位置をボタンの原点に移動 Cursor.Position = btnScreenLocation End Sub End Class