Что меньше в C#
Этикетка размером с прямоугольник без текста, но с рамкой и невидимая (для визуального прямоугольника на форме вокруг элементов управления, но не для элементов управления) или панель?
3 ответа
То, что вы хотите использовать, это GroupBox. Скорее всего, это не имеет значения, но этикетка должна быть дешевле, чем панель.
Ответ; не имеет значения, у кого меньшая занимаемая площадь, и если это так, у вас есть проблема с дизайном (то есть у вас слишком много элементов управления в вашей форме). В любом случае, вы должны просто использовать элемент управления, который подходит для работы, в данном случае, Panel или GroupBox.
Если это действительно проблема, то лучший способ обеспечить визуальное разделение между элементами управления - обработать событие Paint каждой вкладки и использовать e.Graphics.FillRectangle (...) для рисования разделителя. Таким образом вы избавитесь от очень большого количества элементов управления.
Если вы не можете сделать что-то столь же простое, как просто нарисовать прямоугольник под каждым элементом управления на каждой вкладке, вы можете написать подпрограмму генерации кода, которую вы запускаете один раз в форме, и для каждой вкладки вы генерируете что-то вроде этого (перебирая все элементы управления разделителя на странице):
List<Rectangle> rects = new List<Rectangle>();
rects.Add(new Rectangle(10, 40, 200, 5)); // position of first separator
rects.Add(new Rectangle(10, 80, 200, 5)); // position of second separator
// etc.
Затем вы копируете и вставляете эти сгенерированные процедуры кода в свое приложение и используете их для каждого события Paint страницы, например, так:
SolidBrush brush = new SolidBrush(Color.PeachPuff);
foreach (Rectangle rect in rects)
{
e.Graphics.FillRectangle(brush, rect);
}
Затем вы удаляете все разделители из вкладки. В итоге вы должны получить массив типа List<Rectangle>
(один список для каждой страницы), который вы создаете и заполняете событие Load формы или ее конструктор (используя сгенерированный код).
Я должен повторить то, что сказал Эд, хотя..Net формы могут иметь много элементов управления на них без каких-либо реальных проблем, поэтому, если вы столкнулись с проблемами, вызванными слишком большим количеством элементов управления в форме, вам может быть лучше перестроить все это.