如何在DataGridView的列标题中显示Unicode字符串?

时间:2012-05-07 18:42:03

标签: .net winforms datagridview

我希望列标题显示一个unicode字符串。

我可以这样做:

dataGridView1.Columns[10].HeaderText = "\u2191"; // uparrow

...但它显示为方框,而不是我想要的向上箭头。

我怎样才能做我想做的事?

1 个答案:

答案 0 :(得分:3)

必须将控件的字体设置为unicode-aware字体,这种字体可以正确显示相关的unicode字符。

Windows Forms(在我的机器上)的默认字体是“Microsoft Sans Serif”,它显然将unicode字符显示为方框。

允许在我的机器上使用unicode的字体是“Lucida Sans Unicode”,但还有其他字体。

我可以在设计器中设置整个datagridview的字体。

如果为某些原因设置整个datagridview的字体是不可取的,则可以设置任何特定列的标题单元格的字体。我不相信这在VS设计器中是可行的,但它可以在代码中实现。该字体附加到Style属性,因此代码如下所示:

dataGridView1.Columns[10].HeaderText = "\u2191"; // uparrow
var style = new DataGridViewCellStyle();
style.Font = new System.Drawing.Font("Lucida Sans Unicode", 10F,
                                     System.Drawing.FontStyle.Regular,
                                     System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridView1.Columns[10].HeaderCell.Style = style;
dataGridView1.Columns[10].ToolTipText = "upvotes";