2

テーブル レイアウトにマウス イベント コントローラを追加しましたが、機能しません。これまでに行った作業は次のとおりです。

private void tablelayout_MouseClick(object sender, MouseEventArgs e)
{
        if (e.Button == MouseButtons.Right)
        {
            ContextMenu m = new ContextMenu();
            m.MenuItems.Add(new MenuItem("Add Device")); 
            m.MenuItems.Add(new MenuItem("Delete Device"));
            m.MenuItems.Add(new MenuItem("Fire"));
            m.MenuItems.Add(new MenuItem("Fault"));
            m.MenuItems.Add(new MenuItem("Suppress"));

         }

 }

これは私がデザインしたフォームとテーブルのレイアウトです

http://i47.tinypic.com/29mnfhj.jpg

http://tinypic.com/r/29mnfhj/6

4

2 に答える 2

1

問題は、まったく表示ContextMenuされないことです

    private void tableLayout_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            ContextMenu m = new ContextMenu();
            m.MenuItems.Add(new MenuItem("Add Device"));
            m.MenuItems.Add(new MenuItem("Delete Device"));
            m.MenuItems.Add(new MenuItem("Fire"));
            m.MenuItems.Add(new MenuItem("Fault"));
            m.MenuItems.Add(new MenuItem("Suppress"));
            //add this line to the event handler
            m.Show((Control)(sender), e.Location);
        }
    }

メニュー項目ごとにこのコンテキスト メニューのイベント ハンドラーを追加することについての質問については、次のようなイベント ハンドラーを定義する必要があります。

m.MenuItems[0].Click += MenuItemClick;

イベントの場合:

void MenuItemClick(object sender, EventArgs e)
{
    // your code 
}

MenuItem("Add Device")これまでのところ、他の MenuItems とこの 1 つに対してこれらの手順を繰り返すためのクリック イベント ハンドラーを定義しました。

于 2013-04-08T08:18:20.100 に答える