我下面的代码是要点击了MenuItem中的“人员查询”之后就打开了一个新的窗体。
但是我不知道怎么判断当前点击的是不是“人员查询”这个子菜单。
在线等。
 private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            //if(....???)
              //{
            FormPersonPMse FPSe = new FormPersonPMse();
            FPSe.Show();
            WindowInteropHelper parentHelper = new WindowInteropHelper(this);
            WindowInteropHelper childHelper = new WindowInteropHelper(FPSe);            Win32Native.SetParent(childHelper.Handle, parentHelper.Handle);
            //FPSe.Show();        }   <MenuItem Header="数据查询" DataContextChanged="MenuItem_DataContextChanged" Click="MenuItem_Click" Uid="MIDataSe">
                <MenuItem Header="人员查询" FontSize="12" />
                <MenuItem Header="员工表查询" FontSize="12" />
                <MenuItem Header="干部表查询" FontSize="12"/>
            </MenuItem>

解决方案 »

  1.   

    试试 (sender as MenuItem).Header注意 sender as MenuItem 可能为null
      

  2.   

    我的是winform的,只有个(sender as MenuItem).HeaderedItemsControl这个属性。。?
      

  3.   

    RoutedEventArgs 的参数,怎么是winform的?混合在一起的?
      

  4.   


    MenuItem mi = sender as MenuItem;
    >? mi
    null
      

  5.   

    你看一下 sender  是什么
      

  6.   

    谢谢阿非兄先,应该是有办法的,可能是我太不熟悉啦
    >? sender
    {System.Windows.Controls.MenuItem 标题:数据查询 Items.Count:3}
        base {System.Windows.Controls.HeaderedItemsControl}: {System.Windows.Controls.MenuItem 标题:数据查询 Items.Count:3}
        Command: null
        CommandParameter: null
        CommandTarget: null
        Icon: null
        InputGestureText: ""
        IsCheckable: false
        IsChecked: false
        IsHighlighted: false
        IsPressed: false
        IsSubmenuOpen: false
        IsSuspendingPopupAnimation: false
        Role: TopLevelHeader
        StaysOpenOnClick: false
    >? e
    {System.Windows.RoutedEventArgs}
        base {System.EventArgs}: {System.Windows.RoutedEventArgs}
        Handled: false
        OriginalSource: {System.Windows.Controls.MenuItem 标题:考核人员查询 Items.Count:0}
        RoutedEvent: {MenuItem.Click}
        Source: {System.Windows.Controls.MenuItem 标题:考核人员查询 Items.Count:0}
      

  7.   

    >? e.Source
    {System.Windows.Controls.MenuItem 标题:考核人员查询 Items.Count:0}
        base {System.Windows.Controls.HeaderedItemsControl}: {System.Windows.Controls.MenuItem 标题:考核人员查询 Items.Count:0}
        Command: null
        CommandParameter: null
        CommandTarget: null
        Icon: null
        InputGestureText: ""
        IsCheckable: false
        IsChecked: false
        IsHighlighted: false
        IsPressed: false
        IsSubmenuOpen: false
        IsSuspendingPopupAnimation: false
        Role: SubmenuItem
        StaysOpenOnClick: false
    >? e.OriginalSource
    {System.Windows.Controls.MenuItem 标题:考核人员查询 Items.Count:0}
        base {System.Windows.Controls.HeaderedItemsControl}: {System.Windows.Controls.MenuItem 标题:考核人员查询 Items.Count:0}
        Command: null
        CommandParameter: null
        CommandTarget: null
        Icon: null
        InputGestureText: ""
        IsCheckable: false
        IsChecked: false
        IsHighlighted: false
        IsPressed: false
        IsSubmenuOpen: false
        IsSuspendingPopupAnimation: false
        Role: SubmenuItem
        StaysOpenOnClick: false
      

  8.   

    参数e的
    e.OriginalSource
    e.Source
    就是单击的菜单项吧,(e.Source as MenuItem).Header
      

  9.   

    sender是父控件,e.Source才是真实点击的控件
      

  10.   

    直接在<MenuItem Header="人员查询" FontSize="12"  Command="personSelect" /> 对应的操作
    再在需要的窗体注册事件
      <Window.CommandBindings>
        <CommandBinding Command="personSelect"  CanExecute="personCanSelect"
    Executed="personSelect" />
      </Window.CommandBindings>
    CanExecute 是操作事件的验证事件   Executed是人员查询对应的操作事件看看这个
      <ContextMenu x:Key="CategoryMenu">
        <MenuItem Header="Add Subcategory"
                  Command="New">
          <MenuItem.Icon>
            <Image Source="/Images/Add.png"
                   Width="16"
                   Height="16" />
          </MenuItem.Icon>
        </MenuItem>
      </ContextMenu><Window.CommandBindings>
        <CommandBinding Command="New"
                        Executed="AddCategory" />
    </Window.CommandBindings>
    菜单不严正操作就不用CanExecute了 
      

  11.   

            <Menu >
                <MenuItem Header="数据查询" Click="MenuItem_Click" Uid="MIDataSe">
                    <MenuItem Header="人员查询" FontSize="12" />
                    <MenuItem Header="员工表查询" FontSize="12" />
                    <MenuItem Header="干部表查询" FontSize="12"/>
                </MenuItem>
            </Menu>        private void MenuItem_Click(object sender, RoutedEventArgs e)
            {
                this.Title = (e.Source as MenuItem).Header.ToString();
            }