Задать вопрос
InDevo
@InDevo

Управляемые вкладки как в Microsoft Excel?

Здравствуйте, с наступившим вас. Кто может подсказать или дать примеры о том, как сделать управляемые вкладки в Visual Studio на языке Basic так, как это реализовано в Excel? При нажатии на "+" появляется новая вкладка, а сам "+" смещается на следующую позицию относительно новой вкладки и, соответственно, по возможности ПКМ->Удалить вкладку.

Excel:
cef46365372e4999982d12654bed4d34.pngVS Studio, Basic:
21f6ff4d3e004b2fbda5dd2e21c9c1dc.png
  • Вопрос задан
  • 196 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@KriBetko
На форме: TabControl - TabControl1, ContextMenuStrip - ContextMenuStrip1 с пунктом Delete

Private Sub TabControl1_Selected(sender As Object, e As TabControlEventArgs) Handles TabControl1.Selected 'событие Selected при выборе вкладки
        If (e.TabPage.Text = "+") Then 'если вкладка имеет текст +
            e.TabPage.Text = "TabPage" + TabControl1.TabPages.Count.ToString() 'переименовываем текущую вкладку
            TabControl1.TabPages.Add("+") 'добавляем новую вкладку
        End If
    End Sub

    Private Sub TabControl1_MouseUp(sender As Object, e As MouseEventArgs) Handles TabControl1.MouseUp 'событие MouseUp при клике на TabControl1
        If (e.Button = MouseButtons.Right) Then 'Если нажатие ПКМ
            ContextMenuStrip1.Show(MousePosition, ToolStripDropDownDirection.Right) 'выводим по координатам клика ContextMenuStrip1 
        End If
    End Sub

    Private Sub DeleteToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DeleteToolStripMenuItem.Click 'событие Click при нажатии на кнопку Delete в ContextMenuStrip1
        TabControl1.TabPages.Remove(TabControl1.SelectedTab) 'Удаляем ОТКРЫТУЮ вкладку
    End Sub


Тостер не знает о существовании VB и подсветка кода немного неправильная
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
InDevo
@InDevo Автор вопроса
Большое спасибо за ответ. Есть еще один нюанс - после добавления 3-ей вкладки, следующие за ней меняют фон на тот, когда объект бывает неактивным. Это так надо или мне в свойствах TabControl надо выставить что-то?
spoiler
b6438f102ef24b0f863f74614377ed03.jpg
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы