2

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

我可以做这个:

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

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

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

4

1 回答 1

4

需要将控件的字体设置为 unicode-aware 字体,一种可以正确显示有问题的 unicode 字符的字体。

Windows 窗体(无论如何在我的机器上)的默认字体是 "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";
于 2012-05-07T18:46:59.317 回答