C# 我如何找到选项卡I';我右键单击winforms选项卡控件?

C# 我如何找到选项卡I';我右键单击winforms选项卡控件?,c#,tabcontrol,C#,Tabcontrol,在winforms tabcontrol的选项卡条中右键单击选中或未选中的选项卡时,我将显示一个上下文菜单条。它将要关闭,现在关闭除此之外的所有东西。无论如何,我需要能够捕获鼠标在按下鼠标右键时位于哪个选项卡上。有人知道怎么做吗 我接受的另一种解决方案是,在显示关联菜单之前,用鼠标右键单击选择未选择的选项卡。如果选项卡是您的选项卡控件,则可以在鼠标单击事件中添加此代码以查找它 for (int i = 0; i < tabs.TabCount; ++i) { if (tabs.G

在winforms tabcontrol的选项卡条中右键单击选中或未选中的选项卡时,我将显示一个上下文菜单条。它将要关闭,现在关闭除此之外的所有东西。无论如何,我需要能够捕获鼠标在按下鼠标右键时位于哪个选项卡上。有人知道怎么做吗


我接受的另一种解决方案是,在显示关联菜单之前,用鼠标右键单击选择未选择的选项卡。

如果选项卡是您的选项卡控件,则可以在鼠标单击事件中添加此代码以查找它

for (int i = 0; i < tabs.TabCount; ++i) {
     if (tabs.GetTabRect(i).Contains(e.Location)) {
         //tabs.Controls[i]; // this is your tab
     }
}
for(int i=0;i
事件处理程序的
sender
参数通常会提供您单击的对象

void whatever_OnClick(object sender, EventArgs e) {
  var tab = sender as TabControlClassHere;
}

这可能会有所帮助,它会捕获鼠标右键单击的位置,如果它位于任何选项卡的矩形上,则会选中该选项卡并显示右键菜单

private void tabControl1_MouseClick(object sender, MouseEventArgs e)
{
      if (e.Button == MouseButtons.Right)
    {
            for (int i = 0; i < tabs.TabCount; ++i)

                {

                if (tabs.GetTabRect(i).Contains(e.Location)) 
                     {

                tabControl1.SelectTab(i);

                this.contextMenuStrip1.Show(this.tabControl1, e.Location);

                     }

                }
    }
}
private void tabControl1\u MouseClick(对象发送器,MouseEventArgs e)
{
if(e.Button==MouseButtons.Right)
{
对于(int i=0;i

玩得开心:)

它告诉我我单击的tabcontrol,但没有帮助。只有一个tabcontrol!无论如何,谢谢你的建议!这似乎是我想要的,我会投票/接受当我得到它的工作@IsaacB:np,gl和其他:)