【问题标题】:Enumerated TabPages in a MenuStrip - Click eventMenuStrip 中的枚举 TabPages - Click 事件
【发布时间】:2013-12-23 07:03:56
【问题描述】:

我正在将 WinForms TabControl 中的所有标签页显示到 MenuStrip 中。

填充菜单非常简单,但是我似乎无法让事件处理程序在选择时将焦点设置到 TabPage。

由于标签页是动态创建的,它们没有对象名称。所以在 menu_click 事件中,tabEditor.SelectedTab = tabpage; 行没有意义。

如何链接 menu_click 事件以显示选定的选项卡?

    private void pagesToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
    {
        //first clear all items already loaded
        pagesToolStripMenuItem.DropDownItems.Clear();

        //now re-populate them
        foreach (TabPage t in tabEditor.TabPages)
        {
            //create a menu item
            ToolStripMenuItem menu = new ToolStripMenuItem(t.Text);


            //add an event handler
            menu.Click += new EventHandler(menu_Click);

            pagesToolStripMenuItem.DropDownItems.Add( menu );
        }
    }



    void menu_Click(object sender, EventArgs e)
    {
        ToolStripMenuItem menu = (ToolStripMenuItem) sender;

        //Now show the Tab - something like this !
        // 
        tabEditor.SelectedTab = tabpage;


    }

【问题讨论】:

    标签: c# winforms menu tabs


    【解决方案1】:

    试试这个:

    private void tabsToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
    {
        ...
        //create a menu item
        ToolStripMenuItem menu = new ToolStripMenuItem(t.Text);
        //Associate a tab index with a menu item
        menu.Tag = t.TabIndex;
        ...
    }
    
    private void menu_Click(object sender, EventArgs e)
    {
        ToolStripMenuItem menu = (ToolStripMenuItem)sender;
        //Use a tab index associated with a menu item to select a tab
        tabEditor.SelectedIndex = (int)menu.Tag;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 2015-08-08
      相关资源
      最近更新 更多