とっておきの手土産を教えて

C# DataGridView のヘッダーセル中央揃え指定についての質問です。
※数値セルは右詰めで統一しています
 下の画像で一番左側のヘッダーセルの中央揃えは
  DataGridView1.ColumnHeadersDefaultCellStyle.Alignment
    = DataGridViewContentAlignment.MiddleCenter;
  DataGridView2.ColumnHeadersDefaultCellStyle.Alignment
    = DataGridViewContentAlignment.MiddleCenter;

でうまくいくのですが、方程式の次数によって変化する「解」の列のヘッダーの文字が、解を求めるところで改めて

  int Ans = DataGridView1.ColumnCount-1;
  DataGridView1.Columns[Ans].HeaderCell.Style.Alignment =
    DataGridViewContentAlignment.MiddleCenter;

とやってもうまくいきません。どうすればいいのでしょうか?

「C# DataGridView のヘッダ」の質問画像

A 回答 (3件)

列ソートを許可しているんじゃないですか?


その場合、ソート順表示領域があるため、絶対にお望みの位置にはなりませんよ。
ソート順表示領域を除いた中での中央揃えになります。
(同じように、右揃えにしも一番右には行かない)

列の SortMode=NotSortable とすると、中央揃えになります。
当然、それを指定した列をクリックしての並び替えはできなくなりますが。
    • good
    • 2
この回答へのお礼

> 列ソートを許可しているんじゃないですか?
 その通りでした。
DataGrid.Columns[Ans].SortMode = DataGridViewColumnSortMode.NotSortable;
でいけました。丁寧な回答まことにありがとうございました。

お礼日時:2021/12/13 12:22

No.1です。



前者の疑問確認についてはメッセージボックスでも、最初に設定する『全部をセンターに』をコメントにして通常の左寄りで試してみる。

空白文字が後ろに並んでいてってのはないでしょうし。
    • good
    • 0

未経験者的な疑問と言うか確認したい点。


すべてのヘッダーに文字を入れておいて、そのうちどれもセンターになっているのかな?という事。
即ち

>int Ans = DataGridView1.ColumnCount-1;

これの結果自体は問題ないのでしょうか?
あとは再描画 .Refresh() をしてもダメですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A