如何实现双击TabContrl关闭Tab

xharry 2007-06-20 01:22:45
我的代码如下:

// add event handler
tabControl1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.tabControl_MouseDoubleClick);

// ....

//
private void tabControl_MouseDoubleClick(object sender, MouseEventArgs e)
{
TabControl tc = (TabControl)sender;
TabPage tp = this.tabControl1.TabPages[tc.SelectedIndex];
this.tabControl1.TabPages.Remove(tp);
}


问题是,我双击一个tab,会自动关闭所有的tab


为什么会这样??

...全文
341 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xharry 2007-06-20
  • 打赏
  • 举报
回复
是我的错

我每增加一个Tab,都
// add event handler
tabControl1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.tabControl_MouseDoubleClick);

,这样就导致tabControl1会执行N次tabControl_MouseDoubleClick,呵呵

:)
wzuomin 2007-06-20
  • 打赏
  • 举报
回复
如可能,贴代码吧。我觉得不是this.tabControl1.TabPages.Remove(tabControl1.SelectedTab)的原因。哈
Macosx 2007-06-20
  • 打赏
  • 举报
回复
检查其它代码 不是关闭本身造成的
xharry 2007-06-20
  • 打赏
  • 举报
回复
楼上的,我换成你的那样

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

效果一样,双击一个,全部关闭
david_anwei 2007-06-20
  • 打赏
  • 举报
回复
C#中也是一样的!
TabControl1.TabPages.RemoveAt(TabControl1.SelectedIndex)
Macosx 2007-06-20
  • 打赏
  • 举报
回复
我用 this.tabControl1.TabPages.Remove(this.tabControl1.SelectedTab);好使
wzuomin 2007-06-20
  • 打赏
  • 举报
回复
vb中
Private Sub TabControl1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.DoubleClick
TabControl1.TabPages.RemoveAt(TabControl1.SelectedIndex)
End Sub

可以直接移除掉双击的那个TabPage啊

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧