フォームをドラッグして移動させる処理
おまけとして、フォームをドラッグして移動させる処理を組み込んでおきます。このプログラムのフォームはタイトルバーがありませんから、フォームをマウスでドラッグして移動させることができないからです。
そこで、フォームのMouseDown、MouseMoveイベントハンドラを使ってフォームが移動できるようにします。処理は簡単で、MouseDownイベントでマウスポインタの位置を取得しておき、MouseMoveイベントで再度マウスポインタの位置を取得して移動量を算出し、フォームのLeft・Topプロパティの値をその移動量分変化させるだけです。
Private mp As Point Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown If e.Button = Windows.Forms.MouseButtons.Left Then mp = New Point(e.X, e.Y) End If End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove If e.Button = Windows.Forms.MouseButtons.Left Then Me.Left += e.X - mp.X Me.Top += e.Y - mp.Y End If End Sub
private Point mp; private void Form1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { mp = new Point(e.X, e.Y); } } private void Form1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { this.Left += e.X - mp.X; this.Top += e.Y - mp.Y; } }
まとめ
ドロップダウンリストボタンは、ボタンにメニュー機能を組み込んだ面白いボタンコントロールです。
メニューはフォームの上部に配置されますが、このボタンならフォームのどの位置でもメニューを組み込むことができます。イベント処理も難しくありませんので、新しいフォームのデザインに活用できるのではないでしょうか。