Звучит так, как будто вы пытаетесь реализовать кнопку Закрыть для вашего TabControl
, а затем перейти к правильному TabPage
(по указателю)
Чтобы получить полный код, см. Здесь.
Для части кода, здесь (Место в TabControl
MouseDown
):
for (var i = 0; i < this.tabControl1.TabPages.Count; i++)
{
var tabRect = this.tabControl1.GetTabRect(i);
tabRect.Inflate(-2, -2);
var imageRect = new Rectangle(tabRect.Right - CloseImage.Width,
tabRect.Top + (tabRect.Height - CloseImage.Height) / 2,
CloseImage.Width,
CloseImage.Height);
if (imageRect.Contains(e.Location))
{
if (tabControl1.TabCount > 1)
{
this.tabControl1.TabPages.RemoveAt(i);
this.tabControl1.SelectedIndex = i - 1; // Added this bit myself, you won't find it in the answer in the link
return;
}
else
{
return;
}
}
}
Ответ в ссылке содержит остаток кода .
i
, который будет TabPage
index , используется для удаления требуемого TabPage
и перехода к правильному номеру TabPage
, если существует один .
this.tabControl1.SelectedIndex = i - 1;
Переход к удаленному TabPage
' индекс s, -1 . Если нет TabPage
для навигации, например, если вы удалили TabPage
4 , но вы уже удалили TabPage
3 ранее, по умолчанию будет TabPage
1 .
Надеюсь, это поможет вам.