Top / .NET備忘録 / 06.ContextMenu / 05.VBContextMenuStrip その(2)

実装する機能は

        ToolStripMenuItem m_ItemUndo;               // 元に戻す
        ToolStripMenuItem m_ItemCut;                // 切り取り
        ToolStripMenuItem m_ItemCopy;               // コピー
        ToolStripMenuItem m_ItemPaste;              // 貼り付け
        ToolStripMenuItem m_ItemDelete;             // 削除
        ToolStripMenuItem m_ItemSelectAll;          // すべて選択
 
        ToolStripSeparator m_ItemIMEVar;            // IME のセパレータ
        ToolStripMenuItem m_ItemIMEOpenClose;       // IMEを開く or IMEを閉じる
        ToolStripMenuItem m_ItemIMEReconvert;       // 再変換

ImeMode = ImeMode.Disable のときは、IME関連を表示したくないので、セパレータにも名前をつけて宣言します。

コンストラクタでアイテムを追加します。

        private IVBContextMenuTarget m_Owner;
 
        private VBContextMenu()
        {
            // クリップボード関連
 
            m_ItemUndo = new ToolStripMenuItem("元に戻す(&U)");
            m_ItemUndo.Click += delegate
            {
                m_Owner.Undo();
                m_Owner.ClearUndo();    // 元に戻したらバッファクリア
            };
 
            m_ItemCut = new ToolStripMenuItem("切り取り(&T)");
            m_ItemCut.Click += delegate
            {
                m_Owner.Cut(); 
            };
 
            m_ItemCopy = new ToolStripMenuItem("コピー(&C)");
            m_ItemCopy.Click += delegate
            {
                m_Owner.Copy();
            };
            
            m_ItemPaste = new ToolStripMenuItem("貼り付け(&P)");
            m_ItemPaste.Click += delegate
            {
                m_Owner.Paste(); 
            };
            
            m_ItemDelete = new ToolStripMenuItem("削除(&D)");
            m_ItemDelete.Click += delegate
            {
                m_Owner.Delete(); 
            };
            
            m_ItemSelectAll = new ToolStripMenuItem("すべて選択(&A)");
            m_ItemSelectAll.Click += delegate
            {
                m_Owner.SelectAll(); 
            };
 
            // IME 関連
 
            m_ItemIMEVar = new ToolStripSeparator();
 
            m_ItemIMEOpenClose = new ToolStripMenuItem();    // 'IMEを開く' or 'IMEを閉じる'
            m_ItemIMEOpenClose.Click += delegate
            {
                m_Owner.ImeOpenStatus = !m_Owner.ImeOpenStatus; 
            };
 
            m_ItemIMEReconvert = new ToolStripMenuItem("再変換(&R)");
            m_ItemIMEReconvert.Click += delegate
            {
                m_Owner.Reconvert(); 
            };
 
            m_ItemIMEOpenClose.Visible = false;
            m_ItemIMEReconvert.Visible = false;
 
            base.Items.Clear();
 
            base.Items.Add(m_ItemUndo);
            base.Items.Add(new ToolStripSeparator());
            base.Items.Add(m_ItemCut);
            base.Items.Add(m_ItemCopy);
            base.Items.Add(m_ItemPaste);
            base.Items.Add(m_ItemDelete);
            base.Items.Add(new ToolStripSeparator());
            base.Items.Add(m_ItemSelectAll);
 
            base.Items.Add(m_ItemIMEVar);
            base.Items.Add(m_ItemIMEOpenClose);
            base.Items.Add(m_ItemIMEReconvert);
        }




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-03-16 (土) 03:15:09 (1615d)