SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(PlusPak)

ドロップダウンリストボタンを使った.NETアプリケーションを作る

PlusPak for Windows Forms 5.0JのGcDropDownButtonコントロールを使ったアプリケーションの作成

  • このエントリーをはてなブックマークに追加

フォームをドラッグして移動させる処理

 おまけとして、フォームをドラッグして移動させる処理を組み込んでおきます。このプログラムのフォームはタイトルバーがありませんから、フォームをマウスでドラッグして移動させることができないからです。

 そこで、フォームのMouseDown、MouseMoveイベントハンドラを使ってフォームが移動できるようにします。処理は簡単で、MouseDownイベントでマウスポインタの位置を取得しておき、MouseMoveイベントで再度マウスポインタの位置を取得して移動量を算出し、フォームのLeft・Topプロパティの値をその移動量分変化させるだけです。

Visual Basic
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
C#
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;
    }
}

まとめ

 ドロップダウンリストボタンは、ボタンにメニュー機能を組み込んだ面白いボタンコントロールです。

 メニューはフォームの上部に配置されますが、このボタンならフォームのどの位置でもメニューを組み込むことができます。イベント処理も難しくありませんので、新しいフォームのデザインに活用できるのではないでしょうか。

製品情報

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(PlusPak)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3756 2009/03/26 18:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング