Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/103: Рейтинг темы: голосов - 103, средняя оценка - 4.92
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
1

GroupBox изменение цвета границы и вывод заголовка на центр

15.12.2014, 14:54. Показов 20758. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как GroupBox(су) изменить цвет границы и вывести заголовок на центр.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.12.2014, 14:54
Ответы с готовыми решениями:

Изменение цвета заголовка
Ребят срочно надо изменить цвет надписи в actiobar Только по пунктам. Вознаграждение 200 р. на...

Изменение цвета заголовка приложения
Добрый день! Как поменять цвет заголовка приложения в Android Studio? Пытался через файл...

Изменение цвета границы Textbox
Есть форма для добавления нового пользователя, нужно ввести логин пароль и имейл: <Window...

Изменение цвета заголовка окна IntelliJ IDEA
После установки темной темы все в окне стало темных тонов соответственно кроме заголовка окна...

7
 Аватар для awp-sirius
64 / 63 / 43
Регистрация: 01.05.2012
Сообщений: 535
15.12.2014, 15:42 2
самому рисовать нужно. это уже WPF
Изменить цвет groupbox (края не круглые)
Рисовать прямоугольник с закругленными краями
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
15.12.2014, 20:06  [ТС] 3
awp-sirius,
я сделал так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void groupBox1_Paint(object sender, PaintEventArgs e)
        {
            Graphics gfx = e.Graphics;
            Pen p = new Pen(Color.Black, 2);
            GroupBox gb = (GroupBox)sender;
            Rectangle r = new Rectangle(0, 0, gb.Width, gb.Height);
 
            gfx.DrawLine(p, 1, 5, 0, r.Height - 2);
            gfx.DrawLine(p, 1, 5, 7, 5);
            gfx.DrawLine(p, 90, 5, r.Width - 2, 5);
            gfx.DrawLine(p, r.Width - 3, 5, r.Width - 2, r.Height - 4);
            gfx.DrawLine(p, r.Width - 3, r.Height - 4, 0, r.Height - 4);
        }
Но проблема таже новые линии рисуются поверх линий GroupBox, а я хотел бы их сделать тоньше...

Добавлено через 1 минуту
awp-sirius, и по ссылкам это даже не C#.

Добавлено через 4 часа 13 минут
awp-sirius,
в первый раз рисовал событием paint, чуть сума не сошел от кол-во цифр.
сделал так.
C#
1
2
3
4
5
private void groupBox1_Paint(object sender, PaintEventArgs e)
        {
            Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 3);
            e.Graphics.DrawRectangle(blackPen, 0, 7, 190, 116);
        }
Жаль изменить толшину гроупбокса нельзя, лучше тогда сделаю простую обводку...
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
16.12.2014, 16:21  [ТС] 4
awp-sirius, подключаешь этот класс и будут изменённые созданные компоненты, гроапбокс переделанный.
Вложения
Тип файла: 7z Drone.7z (6.3 Кб, 106 просмотров)
0
34 / 39 / 18
Регистрация: 04.05.2013
Сообщений: 212
23.12.2014, 18:07 5
ivan r, чтобы вывести текст по центру, можно переделать класс DroneGroupBox.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class DroneGroupBox : ThemeContainer153 {
 
    public DroneGroupBox() {
        ControlMode = true;
        Header = 26;
        TextAlignment = HorizontalAlignment.Center;
    }
 
    public HorizontalAlignment TextAlignment { get; set; }
 
    protected override void ColorHook() {
    }
 
    protected override void PaintHook() {
        G.Clear(Color.FromArgb(24, 24, 24));
 
        DrawGradient(Color.FromArgb(0, 55, 90), Color.FromArgb(0, 70, 128), 5, 5, Width - 10, 26);
        G.DrawLine(new Pen(Color.FromArgb(20, Color.White)), 7, 7, Width - 8, 7);
 
        DrawBorders(Pens.Black, 5, 5, Width - 10, 26, 1);
        DrawBorders(new Pen(Color.FromArgb(36, 36, 36)), 5, 5, Width - 10, 26);
 
        //???
        DrawBorders(new Pen(Color.FromArgb(8, 8, 8)), 5, 34, Width - 10, Height - 39, 1);
        DrawBorders(new Pen(Color.FromArgb(36, 36, 36)), 5, 34, Width - 10, Height - 39);
 
        DrawBorders(new Pen(Color.FromArgb(36, 36, 36)), 1);
        DrawBorders(Pens.Black);
 
        G.DrawLine(new Pen(Color.FromArgb(48, 48, 48)), 1, 1, Width - 2, 1);
 
        DrawText(Brushes.White, TextAlignment, 9, 5);
    }
}
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
23.12.2014, 18:12  [ТС] 6
kolia4, да я тут разобрался по малости, лучше так.

C#
1
2
3
4
5
6
7
protected override sealed void OnPaint(PaintEventArgs e)
        {
            Graphics G = e.Graphics;
            G.Clear(Color.FromArgb(24, 24, 24));
            G.DrawRectangle(new Pen(Color.FromArgb(20, Color.White)), 7, 7, Width - 15, Height - 15);
            G.DrawString("Функции", new Font("Arial", 10), System.Drawing.Brushes.Red, new Point(ClientRectangle.X, ClientRectangle.Top));
        }
Но опять же я не понял как по центру вывести, то есть что бы при изменение размера элемента он отсавлся по центру.
0
34 / 39 / 18
Регистрация: 04.05.2013
Сообщений: 212
23.12.2014, 18:24 7
ivan r, посмотрите, как это реализовано в этом самом дроне. Там же всё готовое.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
protected void DrawText(Brush b1, string text, HorizontalAlignment a, int x, int y) {
        if (text.Length == 0)
            return;
 
        DrawTextSize = Measure(text);
        DrawTextPoint = new Point(Width / 2 - DrawTextSize.Width / 2, Header / 2 - DrawTextSize.Height / 2);
 
        switch (a) {
            case HorizontalAlignment.Left:
                G.DrawString(text, Font, b1, x, DrawTextPoint.Y + y);
                break;
            case HorizontalAlignment.Center:
                G.DrawString(text, Font, b1, DrawTextPoint.X + x, DrawTextPoint.Y + y);
                break;
            case HorizontalAlignment.Right:
                G.DrawString(text, Font, b1, Width - DrawTextSize.Width - x, DrawTextPoint.Y + y);
                break;
        }
    }
0
33 / 33 / 12
Регистрация: 18.10.2014
Сообщений: 339
23.12.2014, 18:29  [ТС] 8
Согласен, но там всё взаимосвязоно, даже который вы копировали метод и то зависит от половины кода...
0
23.12.2014, 18:29
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2014, 18:29
Помогаю со студенческими работами здесь

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

При переносе сложного заголовка таблицы в Word теряются границы ячеек заголовка
При переносе "сложного" заголовка таблицы в Word на следующий лист (на первом листе таблицы все...

Цвет заголовка GroupBox
Всем привет! Нужно изменить цвет заголовка GroupBox1 на белый. Как сделать? Пробовал устанавливать...

Не меняется цвет шрифта заголовка GroupBox
Всем здравствуйте. Вопрос по свойствам компонента TGroupBox. В BCB6 при изменении цвета шрифта...

Есть ли возможность поменять цвет границы GroupBox и закруглить углы?
Вопрос в сабже, нормального решения так и не нашел...

Не прорисовываются границы заголовка таблицы
Почему не прорисовываются границы заголовка таблицы должно быть так


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
Как работает async/await в C#. Асинхронное программировани­е в .NET
bytestream 23.01.2025
Введение в асинхронное программирование Асинхронное программирование представляет собой важнейшую концепцию современной разработки программного обеспечения, особенно в контексте создания. . .
КуМир: полное руководство
bytestream 23.01.2025
Введение в КуМир: история создания и назначение КуМир (Комплект Учебных МИров) представляет собой образовательную среду программирования, которая была создана для обучения основам алгоритмизации и. . .
Что такое OLAP. Где и как использовать многомерный анализ данных
bytestream 23.01.2025
Введение в OLAP-технологии В современном мире бизнес-аналитика и обработка больших массивов данных играют ключевую роль в принятии стратегических решений. Организации накапливают огромные объемы. . .
MongoDB: что это, для чего нужна и как использовать
bytestream 23.01.2025
Введение в MongoDB: современная документоориентированная СУБД В современном мире разработки программного обеспечения выбор правильной системы управления базами данных является критически важным. . .
Как использовать закрытый ключ шифрования в Git. Шифрование в Git
bytestream 23.01.2025
Установка и настройка закрытых ключей в Git предоставляет дополнительный уровень безопасности для работы с репозиториями. Для начала необходимо создать пару ключей, обычно это осуществляется с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru