用tabcontrol.SelectedTab只能读出当前正在使用的tabpage,而使用SelectIndexChanged命令呢只能在切换tabpage选项卡的时候读出选项卡tabpage的信息。
左键单击可以激活某个tabpage,但是右击却没有办法。那么我们怎么设计才能让右击也能获得tabpage信息呢?可以利用下面代码:
private void tabControl1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
this.textBox1.Text = "";
Point pt = new Point(e.X, e.Y);
Rectangle recTab = new Rectangle();
for (int i = 0; i < tabControl1.TabCount; i++)
{
this.textBox1.Text += "控件" + i + ":\r\n";
recTab = tabControl1.GetTabRect(i);
this.textBox1.Text += recTab.ToString() + "\r\n";
if (recTab.Contains(pt))
this.textBox1.Text += pt.ToString() + "属于" + "控件" + i + "。" + recTab.ToString() + "\r\n\r\n";
}
}
}
代码主要是获得了右击时的坐标,然后获得每个tabpage的矩阵大小,然后判断右击坐标是否在矩阵内来确定右击的是哪个tabpage。
左键单击可以激活某个tabpage,但是右击却没有办法。那么我们怎么设计才能让右击也能获得tabpage信息呢?可以利用下面代码:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)