我在需要更改字体大小和样式的 DataGridView(WinForm 应用程序)中有一个列。从这里的文章:http: //msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.font.aspx,我认为下面的代码会得到我想要的结果(我是通过首先更改样式进行测试):
this.dataGridViewMain.Columns[3].DefaultCellStyle.Font = new Font(dataGridViewMain.DefaultCellStyle.Font, FontStyle.Italic);
但是代码并没有改变任何东西。我还尝试在RowPostPaint
事件处理程序上添加代码,但仍然无法正常工作。我知道程序使用的字体是在DataGridView.RowsDefaultCellStyle
属性上设置的,但我认为在RowPostPaint
事件中放置代码会覆盖它。以下是RowPostPaint
事件的代码:
void dataGridViewMain_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
this.dataGridViewMain.Columns[3].DefaultCellStyle.BackColor = Color.Gray;
foreach (DataGridViewRow row in this.dataGridViewMain.Rows)
{
int daysInShop = Convert.ToInt32(row.Cells["Days in the shop"].Value);
if (daysInShop > 4)
{
row.DefaultCellStyle.BackColor = Color.Red;
row.DefaultCellStyle.ForeColor = Color.White;
}
else if (daysInShop > 2)
{
row.DefaultCellStyle.BackColor = Color.Yellow;
}
else
{
row.DefaultCellStyle.BackColor = Color.YellowGreen;
}
row.Height = 35;
}
this.dataGridViewMain.CurrentCell = null; // no row is selected when DGV is displayed
}
任何帮助表示赞赏。谢谢。