Handler Menu

File Handler に Menu を設定します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

メニューバー

  1. 次はいよいよメニューの設定です。
    Menu の基本は ToolBox からメニューを貼り付ける メニューを設定する を参照して下さい。
  2. Form に MenuStrip を貼り付けるのですが、 Layout でメニューとツールバーは配置済みです。
    メニューのプロパティから稲妻アイコンを選択して click にメソッド名をタイプします。
    後で設定する予定のメニューも一緒に定義しています。
    ファイル(&F)メソッド表示(&V)メソッドヘルプ(&H)メソッド
    日付でコピー(&C)Copy デスクトップ(&T) Desktopバージョン情報(&A)HelpAbout
    ゴミ箱(&G) DustBox マイドキュメント(&M)MyDoc
    削除(&D) Delete マイピクチャ(&P) MyPic
    上書コピー(&Z) Zcopy 大アイコン(&L) Large
    終了(&X) FileExit小アイコン(&S) Small
    詳細(&D) Details
  3. FileExit と HelpAbout を実装して、メニューの実行を確認します。
        private void FileExit(object sender, EventArgs e)
        {
            this.Close();
        }
    
        private void HelpAbout(object sender, EventArgs e)
        {
            MessageBox.Show("File Handler Ver 1.0  by Maeda Minoru");
        }
    
  4. これ以外のメニューは実装されていないので、メニューから選択しても何も起こりません。

ツールバー

  1. ToolStrip(Tool Bar) はアイコンのクリック一発で起動する便利なメニューです。
    プログラムメニューの中から良く使うメニューを集めるのが一般的です。
    今回は間違って実行しても影響が少なく、良く使われると思われるコピーとゴミ箱を設定します。
    Layout でメニューとツールバーは配置済みです。
  2. ToolStrip に貼り付ける画像を用意して下さい。
    私は、次の 64*64 の二枚の GIF 画像を使いました。
    ToolStrip の設定は ToolStrip(ToolBar)を設定する を参照して下さい。

  3. ToolStrip の左端にコントロールが表示されています。
    コントロールから Button を選択します。
    続いて二個目の Button を選択します。
    Button1 のプロパティから Image を選択してコピーの画像(copy.gif)をインポートします。
    Button2 のプロパティから Image を選択してゴミ箱の画像(gomibako.gif)をインポートします。
  4. ToolStrip の Button1 を選択します。
    プロパティウインドウの[イベントアイコン]で Copy を設定します。
    続いて Button2 に DustBox を設定します。
  5. Copy や DustBox はメニューバーで使っていたメソッドの名前です。
    メソッドの実装は、この後でメニューバーの機能を実装する時に行います。

右クリックメニュー

  1. Contex Menu は状況に応じて設定出来る動的なメニューで、一般的にマウスの右クリックで起動します。
    Contex Menu の基本は 右クリックメニュー を参照して下さい。
  2. [メニューとツールバー] から [ContexMenuStrip] をダブルクリックします。
    ContexMenu の [ここへ入力] に直接「Clipbord(&C)」とタイプします。
    「Clipbord(&C)」を選択してイベント(稲妻のアイコン)をクリックします。
    Click プロパティから「ItemSave」とタイプします。
  3. listView1_MouseDown() から ContexMenu を起動します。
        this.listView1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseDown);
    
        // マウスが右クリックされたとき
        private void listView1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button==System.Windows.Forms.MouseButtons.Right)
            {   contextMenuStrip1.Show(this, new Point(e.X, e.Y));
            }
        }
    
  4. ContexMenu から呼ばれる ItemSave() メソッドです。
    Clip_Set() メソッドを呼び出して、選択アイテムをクリップボードに記録します。
    アイテムが選択されていないときは、MessageBox を表示します。
        // 選択アイテムを記録
        private void ItemSave(object sender, EventArgs e)
        {
            if (Clip_Set()==false)  MessageBox.Show("アイテムを選択して下さい");
        }
    
  5. 選択アイテムをクリップボードに記録する Clip_Set() メソッドです。
        // 選択アイテムをクリップボードに記録
        private bool Clip_Set()
        {
            if (listView1.SelectedItems.Count==0)   return false;
            System.Collections.Specialized.StringCollection files =
                new System.Collections.Specialized.StringCollection();
            for(int i=0; i<listView1.SelectedItems.Count; i++)
                files.Add(Sel_Dir + "\\" + listView1.SelectedItems[i].Text);
            Clipboard.SetFileDropList(files);
            return true;
        }
    
  6. クリップボードをつかうときは、Main() メソッドに [STAThread] を設定して下さい。
    クリップボードの説明は Clipboard Files を参照して下さい。
        class form01
        {
            [STAThread]
            public static void Main()
                ・・・
        
  7. プログラムを起動して、List View からアイテムを選択します。
    複数個のファイルやフォルダを選択することも出来ます。
    マウスを右クリックして ContexMenu から「Clipbord(&C)」を選びます。
    この状態で Windows Explorer を起動して、適当なフォルダに移動します。
    Windows Explorer 上で、マウスの右クリックから[貼り付け]を選ぶと、選択したファイルがコピーされます。 \(^o^)/

[Next Chapter ↓] コピーを実装
[Previous Chapter ↑] Layout

超初心者のプログラム入門(C# Frame Work)