Событие TabControl
и его событие SelectedIndexChanged
сделают то, что вам нужно.
Например, у вас есть файл клиента с TabControl
в части сведений формы. Вы хотите загружать лени-загрузку транзакций этого клиента, когда пользователь нажимает транзакции TabPage
. Ваш код должен выглядеть следующим образом:
public partial class CustomerMgmtForm : Form {
// Assuming the design already done, so the TabControl control exists on your form.
public CustomerMgmtForm() {
tabControl1.SelectedIndexChanged += new EventHandler(tabControl1_SelectedIndexChanged);
}
private void tabControl1_SelectedIndexchanged(object sender, EventArgs e) {
switch((sender as TabControl).SelectedIndex) {
case 0:
// Do nothing here (let's suppose that TabPage index 0 is the address information which is already loaded.
break;
case 1:
// Let's suppose TabPage index 1 is the one for the transactions.
// Assuming you have put a DataGridView control so that the transactions can be listed.
// currentCustomer.Id can be obtained through the CurrencyManager of your BindingSource object used to data bind your data to your Windows form controls.
dataGridview1.DataSource = GetTransactions(currentCustomer.Id);
break;
}
}
}
Следующее также полезно при игре с TabControl
.
- TabControl.TabPages.Add ();
- TabControl.TabPages.ContainsKey ();
- TabControl.TabPages.Remove ();
- TabControl.TabPages.RemoveAt ();
- TabControl.TabPages.RemoveByKey ().
Использование TabControl.TabPageCollection Members
.
РЕДАКТИРОВАТЬ # 1
Для выбора конкретной вкладки ее можно идентифицировать только по 0, 1, 2, а не по имени вкладки?
Да, вы также можете увеличивать или уменьшать свойство TabControl.SelectedIndex
, чтобы сделать определенный TabPage
выбранным / активным.
Тем не менее, убедитесь, что вы не индексировали TabPage
из TabPages.Count - 1
, поскольку начальный индекс равен 0, в противном случае вы получите IndexOutOfRangeException
. 1061 *
Чтобы продолжить наш пример, где у нас есть две страницы, информация об адресе и транзакции:
// Will automatically change the selected tab to the Transactions TabPage.
tabControl1.SelectedIndex = 1;
// Considering there a count of two TabPages, the first is indexed at 0, and the second at 1.
// Setting the SelectedIndex property to 2 will throw.
tabControl1.SelectedIndex = 2;
Примечание. Любое изменение свойства TabControl.SelectedIndex
вызовет событие TabControl.SelectedIndexChanged
.