Изменение стиля шрифта в 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 шт):
В ручную перебрал все возможные параметры для стиля шрифта и цвета шрифта:
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());
}
Как то так)