В проекте C # winforms у меня есть небольшая таблица, поле фильтра, кнопка «Добавить» и кнопка «Готово», сгруппированные вместе, и все они помещаются вместе в пределах 250x250 пикселей. Мне нужно только показать эти элементы пользователю, когда он нажимает кнопку. Я решил, что это можно сделать с помощью всплывающего модального экрана или освободив место на главном экране, пока пользователь не нажмет кнопку «Готово».

Я знаю, что недостатком модальных экранов является то, что они могут создавать проблемы для пользователей, когда / если они теряют из виду модальный экран, а затем думают, что программа не отвечает.

Недостаток использования динамического главного экрана, который я вижу, заключается в том, что изменение формы влияет на общий макет. Но, возможно, я смогу найти способ решить эту проблему.

Я новичок во всем этом, поэтому я хотел спросить здесь мнение. Спасибо.

1
ChrisC 26 Фев 2010 в 19:12

3 ответа

Лучший ответ

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

1
Joel Coehoorn 26 Фев 2010 в 19:19
Не могли бы вы объяснить или указать мне на пример наличия чего-то подобного в настраиваемом элементе управления?
 – 
ChrisC
27 Фев 2010 в 04:15
Когда вы впервые добавляете настраиваемый элемент управления в проект winforms, вы получаете представление дизайнера, которое само по себе очень похоже на панель. Основным преимуществом здесь является то, что он позволяет логически группировать элементы управления и функциональные возможности пространства, не загромождая основной класс формы.
 – 
Joel Coehoorn
27 Фев 2010 в 04:58

Если вы поместите их в панель groupBox или FlowLayout, возможно, в углу главного экрана, а затем установите видимость или даже включите для всего элемента управления, когда они могут или не могут нажимать кнопки, работает хорошо.

Отключить до тех пор, пока они не смогут редактировать.

groubB.enabled = true;

Или

groubB.Visible = true;
1
Patrick Kafka 26 Фев 2010 в 19:19

Когда пользователь нажимает кнопку, не могли бы вы отключить все элементы управления в основной форме, а затем разместить панель в центре основной формы поверх других элементов управления? Возможно, сделайте панель немного больше, добавив украшения вокруг нее для акцента. Затем, когда пользователь нажимает кнопку «Готово», закройте панель и снова включите все элементы управления в основной форме.

1
Jacob G 26 Фев 2010 в 19:51
Я должен просто оттолкнуть все остальное, чтобы освободить место? Это принято? Можете ли вы мне указать на какие-нибудь примеры?
 – 
ChrisC
27 Фев 2010 в 04:16
Нет, делай это поверх всего. Оставьте все остальные элементы управления на месте и просто поместите панель сверху. Добавьте его в коллекцию элементов управления формы, а затем переместите на передний план.
 – 
Jacob G
27 Фев 2010 в 17:47