2

列ヘッダーにUnicode文字列を表示したいのですが。

私がすることができます:

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

...しかし、意図したように上向き矢印ではなく、正方形のボックスとして表示されます。

どうすればやりたいことができますか?

4

1 に答える 1

4

コントロールのフォントをUnicode対応フォントに設定する必要があります。これは、問題のUnicode文字を適切に表示できるフォントです。

Windowsフォームのデフォルトフォント(とにかく私のマシン上)は「MicrosoftSans Serif」で、ユニコード文字を四角いボックスとして表示しているようです。

私のマシンでUnicodeを許可するフォントは「LucidaSansUnicode」ですが、他にもあります。

デザイナで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 に答える