Изменение стиля шрифта в dataGridView

Есть база данных, в одной ячейке хранится текст, в другой стиль шрифта, в третьей цвет текста. Хранятся они в таком виде, стиль шрифта: [Font: Name=Verdana, Size=15,75, Units=3, GdiCharSet=204, GdiVerticalFont=False], а цвет в таком формате: Color [Red]. Я хочу применить данный стиль и цвет для текста dataGridView. Пробовал сделать так

var textFont = dataGridView1[4, i].Value;
var textColor = dataGridView1[5, i].Value;  

dataGridView1.Rows[i].Cells[3].Style.Font = new Font(textFont);
dataGridView1.Rows[i].Cells[3].Style.ForeColor = Color.FromName(textColor.ToString());

Но ни цвет, ни стиль не меняется, может есть метод чтобы сразу ставить стиль шрифта и цвет. Если нету, то есть мысль пока что только разбить textFont на отдельные слова и вставлять их в ручную в new Font("Tomah", 16, и тд)


Ответы (1 шт):

Автор решения: Hannibal

В ручную перебрал все возможные параметры для стиля шрифта и цвета шрифта:

string fontName = Convert.ToString(dataGridView1[4, i].Value);
int fontSize = Convert.ToInt32(dataGridView1[5, i].Value);
string fontColor = Convert.ToString(dataGridView1[6,i].Value);
bool fontBold = Convert.ToBoolean(dataGridView1[7, i].Value);
bool fontItalic = Convert.ToBoolean(dataGridView1[8, i].Value);
bool fontUnderline = Convert.ToBoolean(dataGridView1[9, i].Value);
bool fontStrikeout = Convert.ToBoolean(dataGridView1[10, i].Value);

И потом в ручную делал все возможные комбинации:

if (fontBold == true && fontItalic == true && fontUnderline == true && fontStrikeout == true)
  {
    ChangeTextBoldItalicUnderlineStrikeout(i, fontName, fontSize, fontColor);
    return;
  }

public void ChangeTextBoldItalicUnderlineStrikeout(int i, string name, int size, string color)
   {
    dataGridView1.Rows[i].Cells[3].Style.Font = new Font(name, size, FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout);
    dataGridView1.Rows[i].Cells[3].Style.ForeColor = Color.FromName(color.ToString());
   }

Как то так)

→ Ссылка