我希望列标题显示一个unicode字符串。
我可以这样做:
dataGridView1.Columns[10].HeaderText = "\u2191"; // uparrow
...但它显示为方框,而不是我想要的向上箭头。
我怎样才能做我想做的事?
答案 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";