Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 20.04.2018
Сообщений: 58

Зарисовывать пространство за ColumnHeader

29.10.2020, 08:16. Показов 633. Ответов 3

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как зарисовать пространство за ColumnHeader.
Я говорю о белом пространстве на скриншоте за столбцом, которое появляется при уменьшении его ширины

Сами столбцы рисуются так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
        {
            const int borderSize = 4;
            var titleBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(69)))), ((int)(((byte)(74)))));
            var titleFontColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(136)))), ((int)(((byte)(204)))));
 
            using (var gr = e.Graphics)
            {
                using (var brush = new SolidBrush(titleBackColor))
                {
                    gr.FillRectangle(brush, e.Bounds);
                }
 
                using (var brush = new SolidBrush(titleFontColor))
                {
                    gr.FillRectangle(brush, e.Bounds.Left, e.Bounds.Bottom - 1, e.Bounds.Width, 1);
                    string text = listView1.Columns[e.ColumnIndex].Text;
                    SizeF drawStringSize = gr.MeasureString(text, listView1.Font);
                    PointF drawPoint = new PointF(e.Bounds.Left + borderSize, e.Bounds.Top + e.Bounds.Height / 2 - drawStringSize.Height / 2);
                    gr.DrawString(text, listView1.Font, brush, drawPoint);
                }
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2020, 08:16
Ответы с готовыми решениями:

Криво отображается ColumnHeader, в контролле - ViewList
Вот такая вот проблема с отображением Хеадеров в виев-листе: А нужно что б Хеадеры отображались на одном фоне а сами поля на другом...

Datagridview: запрет сортировки при нажатию на ColumnHeader
всем привет, кто знает, подскажите пожалуйста как сделать так, чтобы при нажатии на ColumnHead таблица не меняла ряды местами?? Это как-то...

Как получить все ColumnHeader из ListView (.NET CF)
Подскажите, пожалуйста, как получить все неизвестные заранее ColumnHeader'ы из таких же ListView? foreach (Control ctrl in this.Controls)...

3
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
29.10.2020, 11:58
Вот вам пример
C#
1
2
3
4
               private void Form1_Resize(object sender, EventArgs e)
        {
             listView1.Columns[1].Width = listView1.Width - listView1.Columns[0].Width-5;
        }
последняя колонка изменяет размер в зависимости от изменения размера компонента listView1.
0
1 / 1 / 0
Регистрация: 20.04.2018
Сообщений: 58
30.10.2020, 12:42  [ТС]
Так это не решение проблемы, а лечение симптомов
0
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
03.11.2020, 09:50
Цитата Сообщение от Mastering Посмотреть сообщение
а лечение симптомов
Это устранение Ваших боков, а не лечение симптомов. Или как вы хотите? Написать метод, который за Вас додумает что нужно сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2020, 09:50
Помогаю со студенческими работами здесь

ColumnHeader изменить высоту
Как изменить заголовок столбцов который является экземпляром СolumnHeader? Пишется в одну строку, игнорирует \n,а задать высоту нельзя,...

передача в liestView (columnHeader)
У меня в элементе listview несколько columnHeader под каждое название столбца я хочу добавлять значение переменной! подскажите каким...

Пространство
Здравствуйте, помогите, пожалуйста, доказать. "Пространство всех вещественных чисел, индексированных множеством N всех натуральных чисел,...

Линейное пространство
Проверить образует линейные подпространства в арифметическом пространстве Vn такие системы 1)все векторы в которой первая и последняя...

Линейное пространство
Определить, будет ли линейным пространством относительно линейных операций над матрицами-строками множество всех строк, сумма всех...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru