У меня есть x количество вкладок, на каждой из TabPages есть элемент управления AddressBar и элемент управления WebBrowser. Элемент управления WebBrowser (настраиваемый элемент управления) имеет свойство типа int, называемое BrowserCount.Синхронизация табулатур и их элементов управления
Значение BrowserCount должно быть таким же, как TabPage, на котором оно расположено. Итак, TabPage [0] имеет браузер с BrowserCount = 0; etc
Однако, когда я удаляю TabPage, номера выходят из строя. Очевидно, что ответ состоит в том, чтобы просто перебрать оставшиеся вкладки TabePage и сбросить значение BrowserCount в новый индекс TabPages.
У меня есть этот код:
private void UpdateTabs()
{
// Renumber Tabs and Browsers
int tabCount = 0;
foreach (TabPage tp in customTabControl1.TabPages)
{
tp.Tag = tabCount;
foreach (Control ctrl in tp.Controls)
{
if (ctrl.Name == "browser")
{
ctrl.BrowserCount = TabCount; // Error Unknown member BrowserCount
}
}
}
}
Казалось бы, мне нужно, чтобы разжиться фактического экземпляра браузера на этой вкладке, чтобы получить доступ к свойству BrowserCount (который не является собственностью вообще, это просто публичная (нестатическая) переменная).
Любые идеи о том, как я могу изменить BrowseCount Browser, чтобы они были такими же, как и указатель родительского TabPage?
Спасибо.
Вы можете использовать свойство CountControl Count как источник вашего итератора. – Tico
Как «внедрить« INotifyPropertyChanged »на ваш« TabPage »и вызывать событие при изменении индекса? Вам нужно создать свою собственную «TabPage» с помощью этого подхода. –
Вы можете сделать одно событие, которое обрабатывается вашим customTabControl. Таким образом, вам не нужно удерживать фактический экземпляр браузера на определенной странице табуляции. –