178 / 68 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
1

Изменить цвет колонки DataGridView

07.02.2017, 21:24. Показов 3719. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте.
Вот пример как закрасить строку (Изменение цвета строки в DataGridView)
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn()
        Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn()
        Column3 = New System.Windows.Forms.DataGridViewTextBoxColumn()
        Column4 = New System.Windows.Forms.DataGridViewTextBoxColumn()
        Column5 = New System.Windows.Forms.DataGridViewTextBoxColumn()
        Column6 = New System.Windows.Forms.DataGridViewTextBoxColumn()
        dgw.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2, Me.Column3, Me.Column4, Me.Column5, Me.Column6})
        dgw.RowCount = 6
        For i As Integer = 0 To 5
            For j As Integer = 0 To 5
                dgw(j, i).Value = 12345
            Next
        Next
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Cell As DataGridViewCell
        'Закрашиваем строку 4 в желтый цвет
        For Each Cell In dgw.Rows(3).Cells
            Cell.Style.BackColor = Color.Yellow
        Next
    End Sub
End Class
А как то же самое проделать со столбцом?

Добавлено через 12 минут
Уточню:
Как переписать по другому следующий код (учитывая что ряды могут добавляться...)
VB.NET
1
2
3
4
5
6
7
8
9
10
11
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim st As New DataGridViewCellStyle
        st.BackColor = Color.Yellow
       
        dgw.Rows(0).Cells(3).Style = st
        dgw.Rows(1).Cells(3).Style = st
        dgw.Rows(2).Cells(3).Style = st
        dgw.Rows(3).Cells(3).Style = st
        dgw.Rows(4).Cells(3).Style = st
        dgw.Rows(5).Cells(3).Style = st
    End Sub
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2017, 21:24
Ответы с готовыми решениями:

Изменить цвет заголовка в DataGridview
Здравствуйте. У меня вопрос. Кто-то может помочь? Вчера пытался изменить цвет заголовка...

Изменить цвет строк DataGridView при заполнении через DataSource
Добрый день. На форме размещен DataGridView, который заполняется через привязку данных из...

Сортировка колонки DataGridView по значениям другой колонки
Подскажите решение проблемы. Есть Grid. Нулевая колонка (с именем NOMER) содержит цифровые...

Изменить цвет строк и цвет текста через одну в listbox
Всем привет! Есть код который изменят стиль и цвет строк и текста в datagridview For intCount...

4
1529 / 1477 / 322
Регистрация: 03.10.2012
Сообщений: 1,516
07.02.2017, 21:47 2
Лучший ответ Сообщение было отмечено jkrnd как решение

Решение

Можно это сделать в событии CellPainting
VB.NET
1
2
3
4
5
6
7
8
9
Dim st As New DataGridViewCellStyle With {.BackColor = Color.Yellow}
 
    Private Sub dgv_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgv.CellPainting
        If e.ColumnIndex > -1 AndAlso e.RowIndex > -1 Then
            If e.ColumnIndex = 3 Then
                dgv(e.ColumnIndex, e.RowIndex).Style = st
            End If
        End If
    End Sub
Добавлено через 1 минуту
Аналогично, и для строк
4
8 / 8 / 0
Регистрация: 07.06.2020
Сообщений: 90
09.09.2020, 20:17 3
Прошу прощения, что поднимаю старую тему, но открытым остался вопрос, как поменять цвет всей колонки сразу.
Вариант с перебором ячеек конечно работает:
VB.NET
1
2
3
4
Dim Style_Y As New DataGridViewCellStyle With {.BackColor = Color.Yellow}   'Стиль фона = жёлтый
For m = 0 To 9999
     DataGridView_Temp.Item(1, m).Style = Style_Y
Next m
но если их много, это, как мне кажется, отражается на времени раскраски ячеек.
Можно ли как-то задать BackColor для определённой колонки сразу?
1
4407 / 3531 / 843
Регистрация: 02.02.2013
Сообщений: 3,417
Записей в блоге: 2
09.09.2020, 20:30 4
Можно так
VB.NET
1
DataGridView1.Columns(0).DefaultCellStyle.BackColor = Color.Red
3
8 / 8 / 0
Регистрация: 07.06.2020
Сообщений: 90
09.09.2020, 20:50 5
Точно! Спасибо большое! Что-то проглядел это.
1
09.09.2020, 20:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2020, 20:50
Помогаю со студенческими работами здесь

Переупорядочить колонки DataGridView
Есть DataGridView. В нем надо переупорядочить колонки. Поступаем так: ...

Заполнение колонки DataGridView массивом
Добрый день, товарищи. Есть DataGridView1 с 3 колонками. 1 колонка - название 2 колонка -...

Определить Name колонки, зная Headertext в Datagridview
Есть конструкция: dataGridView1.Columns(0).Name = "Recipe" т.е. по индексу задается имя как...

Вывод названия колонки из DataGridView в TextBox
Задача стоит в том, чтобы при выделении ячейки DataGridView, в TextBox отображалось название...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru