Я хочу создать элемент управления вкладкой, который открывает содержимое только один раз.Каждый открытый элемент должен проверить контейнер, чтобы убедиться, что он еще не отображается.Я считаю, что я хочу использовать метод bool TabControl.TabPages.ContainsKey (строковый ключ) , однако он всегда возвращает значение false .
IЯ создал обходной путь, в котором я храню объект в отдельном списке, который я синхронизирую с элементом управления вкладками, но он кажется очень неправильным.У меня есть список в свойстве TabPages элемента управления, поэтому я должен иметь возможность запрашивать его.
Я пропустил свойство?Является ли мое ожидание этого метода и что он выполняет правильно?Как мне заставить его правильно идентифицировать мои открытые вкладки?
Вот пример кода, который похож на то, что я делаю:
private void _fillTabControl()
{
List<string> keys = new List<string>() { "one", "two" };
foreach (string key in keys)
_addTab(key);
bool alreadyOpened = tabControl.TabPages.ContainsKey(keys[0]);
}
private void _addTab(string key)
{
TextBox textBox = new TextBox();
textBox.Text = key;
TabPage tab = new TabPage();
tab.Text = key;
tab.Controls.Add(textBox);
tabControl.TabPages.Add(tab);
}