Показывать элементы управления на нескольких страницах элемента управления вкладками в конструкторе - PullRequest
0 голосов
/ 10 ноября 2009

Я хочу использовать элемент управления вкладками для переключения между наборами данных, отображаемых в DataGridView (в настоящее время я использую переключатели). Во время выполнения я могу просто переместить элементы управления с одной вкладки на другую, но событие SelectedIndexChanged не запускается в конструкторе.

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    tabControl1.TabPages[tabControl1.SelectedIndex].Controls.Add(label1);
}

Есть ли способ, с помощью которого я могу отображать DGV на всех моих вкладках в конструкторе, или это ограничение, с которым мне придется жить?

Ответы [ 3 ]

2 голосов
/ 10 ноября 2009

Будут ли переключатели управления вкладками переключать какие-либо элементы управления, кроме DGV? Не могли бы вы просто положить элемент управления вкладками вниз, отрегулировать вертикальную высоту так, чтобы он был достаточно высоким для самих вкладок, а затем поместить DGV под ним (чтобы его не было в элементе управления вкладками)?

1 голос
/ 10 ноября 2009

Я не уверен, что посчитал бы это ограничением, но как правильной реализацией. Страница вкладки является контейнером, и я уверен, что виджет может иметь только один непосредственный родительский контейнер. Поэтому дизайнер не должен переназначать родителей на лету. Похоже, вы на самом деле не хотите, чтобы DGV находился в контейнере вкладок, а просто чтобы иметь возможность взаимодействовать с ним как часть обработки событий для элемента управления Tab.

Если это так, я бы посоветовал вам использовать панели и авторазмер для решения проблем презентации, упомянутых Дэном Нили выше.

Например, рассмотрим поисковую систему с разными «режимами». Поместите элемент управления вкладками на верхней панели со страницами вкладок, содержащими виджеты для реализации критериев поиска, относящихся к «режиму», например, поиск по ключевым словам или поиск по атрибутам против поиска по рабочему процессу. Поместите DGV в отдельную панель под той, которая содержит вкладки. Затем, когда есть события табуляции, вы можете манипулировать содержимым DGV по своему усмотрению. Панели могут управлять вопросами презентации изменения размера.

0 голосов
/ 10 ноября 2009

Я уверен, что это ограничение дизайнера Visual Studio.

Я бы тоже выбрал что-то вроде решения Дж.

...