gpt4 book ai didi

c# - 检测未选中但单击的标签页 C# Windows 窗体应用程序

转载 作者:可可西里 更新时间:2023-11-01 11:58:33 24 4
gpt4 key购买 nike

我正在尝试在 Windows 窗体应用程序中构建 Web 浏览器。我在上下文菜单中添加了关闭选项卡的选项。我不希望在右键单击时选择标签页,只需要出现上下文菜单。那很好用。问题是当我单击关闭选项卡时,前一个选项卡被关闭而不是当前选项卡,因为前一个选项卡是被选中的选项卡。我试图通过获取标签页的矩形位置来解决这个问题,但所有标签页的矩形位置似乎都相同。请帮忙!

    //this is my event handler for closing the tab
private void closeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.tabControlBrowser.TabPages.Remove(this.tabControlBrowser.SelectedTab);
}

最佳答案

是的,你是对的,因为你正在使用

this.tabControlBrowser.TabPages.Remove(this.tabControlBrowser.SelectedTab); 

这将删除当前选定的选项卡,但不会删除您正在单击的选项卡页面。

请尝试下面的代码希望它能帮助你前进

TabPage _ClickedTab;
public Form1()
{
InitializeComponent();
this.tabControl1.MouseClick += new MouseEventHandler(tabControl1_MouseClick);

}

void tabControl1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
this.contextMenuStrip1.Show(this.tabControl1, e.Location);


Rectangle r2 = this.tabControl1.GetTabRect(0);

foreach (TabPage item in this.tabControl1.TabPages)
{
Rectangle r = this.tabControl1.GetTabRect(tabControl1.TabPages.IndexOf(item));
if (r.X < e.Location.X && e.Location.X < r.X + r.Width && r.Y < e.Location.Y && e.Location.Y < r.Y + r.Height)
{
_ClickedTab = item;
}

}


}
}


private void toolStripMenuItem3_Click(object sender, EventArgs e)
{
this.tabControl1.TabPages.Remove(_ClickedTab);
}

关于c# - 检测未选中但单击的标签页 C# Windows 窗体应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com