フォームをドラッグして移動させる処理
おまけとして、フォームをドラッグして移動させる処理を組み込んでおきます。このプログラムのフォームはタイトルバーがありませんから、フォームをマウスでドラッグして移動させることができないからです。
そこで、フォームの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;
}
}
まとめ
ドロップダウンリストボタンは、ボタンにメニュー機能を組み込んだ面白いボタンコントロールです。
メニューはフォームの上部に配置されますが、このボタンならフォームのどの位置でもメニューを組み込むことができます。イベント処理も難しくありませんので、新しいフォームのデザインに活用できるのではないでしょうか。

