不可以吗?
你可以(菜单项or工具项).Click+=同一个处理函数。也可以在相应Event的下拉框里选择处理函数,这样,不同按钮或菜单不就可以采用相同的处理函数了吗?

解决方案 »

  1.   

    在“工具栏”的“Click事件处理方法”中,用siwtch语句选择调用相应的菜单的“Click事件处理方法”,举个例子:    private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
        {
          switch(e.Button.Text)
          {
            case "新建":menuItem2_Click(this,new EventArgs());break;
            case "打开":menuItem3_Click(this,new EventArgs());break;
          }
        }    private void menuItem3_Click(object sender, System.EventArgs e)
        {
          MessageBox.Show("你点击了“打开”");
        
        }    private void menuItem2_Click(object sender, System.EventArgs e)
        {
          MessageBox.Show("你点击了“新建”");
        }
      

  2.   

    推荐使用 命令模式(Command Pattern) 协调完成相同功能的菜单项和工具条按钮,用命令对象统一相关UI组件的状态和行为。比如我们希望把“离线工作”的菜单和工具栏功能关联对应起来,可以这么做:1、声明一个 Command 对象,并在 MainForm_Load() 里为这个行为创建一个命令
    private Command m_workOfflineCommand = null;
    m_workOfflineCommand = new Command(new Command.Action(this.WorkOffline_Action));2、用 Commander 对象把菜单项和工具条按钮联结到这个 Command
    MenuItemCommander.Connect(menuWorkOffline, m_workOfflineCommand);
    ToolBarButtonCommander.Connect(toolbarWorkOffline, m_workOfflineCommand);3、通过命令来控制菜单项和工具条按钮的状态
    private void WorkOffline_Action() 
    {
    // 例如,你需要更新是否离线工作的状态
    UpdateWorkOffline();
    if (menuWorkOffline.Checked){//...}
    }
      

  3.   

    先谢下 Wanz(我是我的) 我试一下
      

  4.   

    Command对象是在哪个命名空间里啊,找不到呀
      

  5.   

    Command对象不是内置的对象,你可以参考 Design Patterns: Command 部分自己写一个
      

  6.   

    Design Patterns: Command是什么东东?
      

  7.   

    能详细一点吗
    Design Patterns: Command 什么东西啊