2011-02-16 75 views
0

我编写了代码以显示右键单击我的tabpages上下文菜单。当用户从上下文菜单中点击“删除标签”时,我将如何去实际删除标签页?我已经得到了这个。 (unloadProfile是我的上下文菜单项)。我不确定如何获取上下文菜单正在关联的tab页以将其删除。任何帮助表示赞赏。如何从上下文菜单中删除tabpage

// My Context Menu 
private void tabControl_MouseClick(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
      // iterate through all the tab pages 
      for (int i = 0; i < tabControl.TabCount; i++) 
      { 
       // get their rectangle area and check if it contains the mouse cursor 
       Rectangle r = tabControl.GetTabRect(i); 
       if (r.Contains(e.Location)) 
       { 
        // show the context menu here 
        this.contextMenuStrip1.Show(this.tabControl, e.Location); 
       } 
      } 
     } 
    } 

// Context menu click event 
private void unloadProfile_Click(object sender, EventArgs e) 
    { 
     // iterate through all the tab pages 
     for (int i = 0; i < tabControl.TabCount; i++) 
     { 

     } 
    } 

回答

3

我不认为这是做到这一点的正确方法,但它的工作原理。

在tabControl1_MouseClick(对象发件人,MouseEventArgs e)事件中,将menustrip的Tag属性设置为选中的TabPage。

// show the context menu here 
this.contextMenuStrip1.Tag = this.tabControl1.TabPages[i]; 
this.contextMenuStrip1.Show(this.tabControl1, e.Location); 

而在removeTabToolStripMenuItem_Click(对象发件人,EventArgs的)事件中使用Tag属性

this.tabControl1.TabPages.Remove(this.contextMenuStrip1.Tag as TabPage); 

空校验将是很好的去除标签页:)希望它帮助。

+0

很好用。谢谢。 – 2011-02-16 05:21:28

相关问题