【问题标题】:Click event for newly added menu item新添加的菜单项的单击事件
【发布时间】:2012-03-25 07:43:47
【问题描述】:

我有一个菜单项,我要向其中添加另一个项。现在我想将点击事件分配给新添加的项目。我怎么能这样做?下面是我添加菜单项的方法。

MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName));

【问题讨论】:

    标签: c# wpf events menuitem


    【解决方案1】:

    只需创建MenuItem 类的新实例并订阅Click 事件:

    MenuItem newMenuItem = new MenuItem();
    newMenuItem.Header = System.IO.Path.GetFullPath(ofd.FileName);
    newMenuItem.Click += MenuItemOnClick; // The handler.
    MI.Items.Add(newMenuItem);
    

    【讨论】:

      【解决方案2】:

      通过索引获取MenuItem 并使用+= 语法附加事件处理程序:

      int itemIndex = MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName));
      MenuItem item = MI.Items[itemIndex] as MenuItem;
      item.Click += new RoutedEventHandler(Item_Click);
      

      【讨论】:

        【解决方案3】:

        Add 返回一个整数,表示添加的项目的索引,然后您可以使用此索引访问集合的元素并订阅事件,因此您必须执行以下操作:

        var index = MI.Items.Add(System.IO.Path.GetFullPath(ofd.FileName));
        ((UIElement)MI.Items.GetItemAt(index)).MouseLeftButtonUp += OnMenuItemMouseUp;
        
        void OnMenuItemMouseUp (object sender, MouseButtonEventArgs e) {
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-06
          • 2013-03-03
          • 1970-01-01
          相关资源
          最近更新 更多