Как я могу создать строку в приложении WinForms? - PullRequest
14 голосов
/ 21 июня 2010

Я хочу создать простую трехмерную линию в приложении WinForms, чтобы улучшить визуальное расположение макета моей формы. Эта строка очень похожа на строку в диалоговом окне «О Windows» (ее можно открыть в Проводнике Windows -> Справка -> О Windows).

Пример можно проверить здесь . Последняя строка (3D) - это та, которую я хочу, а не первая.

Как это можно сделать в C # или Visual Basic (.NET)?

Спасибо

Ответы [ 5 ]

47 голосов
/ 19 января 2013

Добавьте элемент управления Label с трехмерной рамкой и без текста, затем установите высоту 2.

9 голосов
/ 21 июня 2010

Если вы используете утилиту ZoomIt от SysInternals, вы можете видеть, что это просто две строки.Темно-серый над белым.Рисование линий достаточно просто с Graphics.DrawLine (), вам просто нужно убедиться, что вы выбрали темный цвет, который хорошо работает с BackColor формы.Это не всегда линкор серый, если пользователь выбрал другую тему.Это приводит к тому, что трюк GroupBox не работает, даже если форма изменена.Выберите свой собственный элемент управления в качестве ссылки для линии.

4 голосов
/ 21 июня 2010

Я также использовал GroupBox hack , и он получил преимущество в том, что сам стилинг основывался на теме границы ОС.

Существует также класс Line в наборе элементов управления VB Powers . Там есть еще несколько вкусностей, которые мы тоже использовали.

Редактировать: Вот мой класс Seperator для рисования горизонтальной линии с использованием метода, упомянутого выше.

public class Separator : GroupBox
{
    // Methods
    protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
    {
        base.SetBoundsCore(x, y, width, 3, specified);
    }

    // Properties
    [DefaultValue("")]
    public override string Text
    {
        get
        {
            return string.Empty;
        }
        set
        {
        }
    }
}
4 голосов
/ 21 июня 2010

Один из способов - создать групповой блок без метки и высоты 0 (или это 1, не совсем помню) - я знаю, что раньше использовал этот трюк, даже если он немного хакерский :-)

1 голос
/ 28 октября 2015

Вы можете получить эффект разделителя строк, добавив метку и установив ее текст в качестве подчеркивания "_"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...