#c# #winforms
#c# #winforms
Вопрос:
Я выполняю примерное экзаменационное задание, в котором мне нужно создать форму, которая строит разные фигуры на основе разных вариантов выбора формы.
У меня есть группа переключателей с 3 вариантами. В зависимости от выбранного параметра я должен показать следующий набор еще нескольких параметров. Правильный ли способ сделать это — поместить несколько Panel
разных кнопок друг на друга, сделать все скрытыми и не показывать ничего, кроме одного, при выборе переключателя из первой группы или есть более стандартный способ?
Комментарии:
1. Будьте осторожны при наложении панели с помощью конструктора. Вы можете непреднамеренно сделать панель дочерней для другой панели. Лучше оставить панели в разных положениях, оставив только одну в правильном положении. В событии Form_Load или после InitializeComponent переместите другие панели точно над местоположением первой
2. @Steve прав, это должно быть ответом. Наличие элементов управления, перекрывающих друг друга, является занозой в заднице для любого, кто просматривает дизайн. Создайте начальную панель там, где вы хотите, создайте другие с отключенной видимостью где-нибудь в другом месте формы и просто скройте начальную и переместите тематическую панель в ее положение.
Ответ №1:
Кажется, это правильный способ справиться с этим сценарием. Однако я не рекомендую перекрывать панели конструктором форм. Существует большая вероятность того, что вы непреднамеренно сделаете панель дочерней для другой панели.
Я предпочитаю оставлять панели в разных положениях, только одну в правильном положении.
В событии Form_Load или после InitializeComponent я перемещаю другие панели точно по местоположению первой
Так, например
public class Form1 : Form
{
public Form1()
{
InitializeComponent();
panel2.Location = panel1.Location;
.....
}
}
Комментарии:
1. Я бы все равно сделал:
panel1.Visible = false;
на всякий случай, если порядок Z будет увеличен.2. Ну, это можно было бы оставить в конструкторе. Каждая панель начинается с Visible = False, если вы не хотите, чтобы она отображалась по умолчанию.
3. Нет, если он проектировал панели с дизайнером… Они видны по умолчанию.
4. Мы говорим то же самое. Просто я подумал, что, когда он говорит, что все панели скрыты , он делает это с помощью дизайнера.
5. Большое спасибо, это сделало это!