|
分類:[C#]
お世話になっています。 環境は以下の通りです。
開発環境 VisualStudio 2005 言語 C# 実行環境 Windows CE
コンテキストメニューの表示を行いたいのですが うまくいきません。 リストビューを右クリックしたときに 「新規」のコンテキストメニュー リストビューの項目の1つ目を右クリックしたときに 「修正」「削除」のコンテキストメニューを 表示したいです。
// リストビューマウスアップ時処理 private void listView1_MouseUp(object sender, MouseEventArgs e) { // 右クリックでなければ終了 if (e.Button != MouseButtons.Right) return;
// クリック位置にあるアイテムを取得 ListViewHitTestInfo hitItem = listView1.HitTest(e.X, e.Y);
// クリック位置にアイテムがなければ「新規作成」追加 if (null == hitItem.SubItem) { contextMenu1.MenuItems.Add("新規作成"); } // 1つめのカラムをクリックしたなら「修正」「削除」追加 else if (0 <= e.X && e.X <= listView1.Columns[0].Width) { contextMenu1.MenuItems.Add("修正"); contextMenu1.MenuItems.Add("削除"); }
// 表示するメニューがあればマウスカーソル位置にコンテキストメニュー表示 if (0 < contextMenu1.MenuItems.Count) contextMenu1.Show(Cursor.Position); }
このようにコーディングしたのですが、
エラー1 型または名前空間名 'ListViewHitTestInfo' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。
エラー2 'System.Windows.Forms.ListView' に 'HitTest' の定義がありません。
エラー3 'System.Windows.Forms.Menu.MenuItemCollection.Add(System.Windows.Forms.MenuItem)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
エラー4 引数 '1': 'string' から 'System.Windows.Forms.MenuItem' に変換できません。
エラー9 'System.Windows.Forms.Cursor' に 'Position' の定義がありません。
というエラーが出てしまいます。 3,4は同じエラーが全部で3回出てきます。 何が原因でしょうか?
また、「新規」のコンテキストメニューは 階層構造にしたいのですが やり方がわかりません・・・。
よろしくお願い致します。
|