public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Подписались на событие - вкладка изменилась
tabControl1.SelectedIndexChanged += new System.EventHandler(this.SelIndexChanged);
//Добавляем две новых вкладки
tabControl1.TabPages.Add("Вкладка №2");
tabControl1.TabPages.Add("Вкладка №3");
}
private void SelIndexChanged(object sender, EventArgs e)
{
//Показываем первую страницу, при выборе любой из вкладок
TabControl tbc = sender as TabControl;
if (tbc != null) tbc.TabPages[0].Show();
}
}
TabControl одинаковые контролы на всех страницах
Задача следующая: TabControl, на его странице есть определенные контролы. Нужно сделать, что бы на всех последующих страницах были те же самые контролы, а уже программно менять только их содержимое. Если подскажете как реализовать альтернативными способами - тоже хорошо.
Яркий пример - вкладки QIP. На всех вкладках те же самые контролы, а при смене вкладки меняется инфа.
Возможно при создании вкладки создавать новые контролы, но мне кажется, что ресурсов это будет кушать многим больше.
Так пусть и будет всего одна страница с контролами, а при нажатии на другую вкладку, меняй содержимое контролов, не меняя страницы :)
Чего-то я не понял. В TabControl при нажатии на вкладку, автоматически меняется страница. Как этого избежать - я незнаю.
Размести контролы поверх TabControl'а, а не на нём самом. Тогда при смене вкладки контролы поверх будут оставаться прежними.
Цитата: Akula
Чего-то я не понял. В TabControl при нажатии на вкладку, автоматически меняется страница. Как этого избежать - я незнаю.
Ну, можно, через визард в TabControl создать одну вкладку и на ней разместить нужные тебе контролы, а дальше сделать примерно так :
Код:
разместил табконтрол так, что бы были видны только вкладки. Все остальное разместил на самой форме. Сразу чего-то не дошло.
спасибо всем за помощь
На мой взгляд самое разумное решение - создать UserControl, на котором расположить все нужные компоненты, далее создавать его экземпляр на каждой вкладке. И никакого копирования!