Как изменить цвет фона RichTextBox после присвоения в DataGridView

#vb.net #datagridview #richtextbox

#vb.net #datagridview #richtextbox

Вопрос:

Я хотел бы изменить цвет фона RichTextBox, который находится в ячейке DataGridView.

Я пробовал использовать

 Me.dgvPartTracking.Item(columnIndex, rowIndex).Style.BackColor = Color.LightGreen
  

Я.dgvPartTracking.Элемент (ColumnIndex, RowIndex).Стиль.ForeColor = Цвет.Черный

но в результате изменяется только фон ячейки, а цвет фона RichTextBox по-прежнему остается белым

Вывод выглядит следующим образом: Пример результата

Метод, который я использовал для назначения RichTextBox в DataGridView.

* Я использую цикл для добавления столбцов и строк, как показано ниже

         Dim Col As New DataGridViewRichTextBoxColumn
        Col.Name = "schedule" amp; columnCount
        Col.HeaderText = "" amp; columnCount
        Col.DefaultCellStyle.WrapMode = Windows.Forms.DataGridViewTriState.True
        Col.DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft
        Col.Width = 195
        Col.ReadOnly = True
        Col.SortMode = Windows.Forms.DataGridViewColumnSortMode.NotSortable
        Col.Resizable = Windows.Forms.DataGridViewTriState.True
        Col.AutoSizeMode = Windows.Forms.DataGridViewAutoSizeColumnMode.NotSet
        Col.Visible = True
        Me.dgvPartTracking.Columns.Add(Col)
        Me.dgvPartTracking.Rows.Add(1)
  

Я еще не устанавливал цвет фона в этом коде, потому что я хотел бы изменить разные цвета фона для каждой ячейки в DataGridView позже

Комментарии:

1. Item Свойство a DataGridView возвращает a DataGridViewCell , а не a RichTextBox . На самом деле вам нужно получить доступ к элементу управления в ячейке, но, если вы все сделали правильно, такой элемент управления должен существовать только во время редактирования ячейки в этом столбце. Мы недостаточно знаем о вашей реализации, чтобы знать, как получить доступ к этому элементу управления, но вы должны, учитывая, что вы его туда поместили.

2. Потому что это именно то, что вы делаете. Вы изменили цвет задней части ячейки, а не RichTextBox. Вы никогда не показывали, как вы добавили RichTextBox, но всякий раз, когда вы это делаете, установите для его обратного цвета тот цвет, который вы хотите.

3. Я только что обновил сообщение

Ответ №1:

Я только что решил эту проблему, используя способ, приведенный ниже:

 Dim cell As New DataGridViewRichTextBoxCell
cell.setBackColor(Color.LightGreen)
Me.dgvPartTracking.Item(columnIndex, rowIndex) = cell
Me.dgvPartTracking.Item(columnIndex, rowIndex).Style.BackColor = Color.LightGreen
Me.dgvPartTracking.Item(columnIndex, rowIndex).Style.ForeColor = Color.Black
  

Спасибо, что ответили мне @jmcilhinney, я почерпнул идею из вашего комментария