列にボタンを配置し、文字を表示する
DataGridViewの列にボタンを配置し、文字を入れる。これが私的には設定があまり感覚的ではない。
列の編集で、プロパティから
ColumnType : DataGridViewButtonColumn
Text : 削除
Text : 削除
とすれば、ボタンに「削除」という文字が出てくるように思われる。
その結果がこちら。
その結果がこちら。

なぜかボタンには何も文字が入っていないのだ。
それを解決するには、こちらの設定が必要。

UserColumnTextForButtonValue : True
とする必要があったのだ。これを設定すると

このようにボタンに文字が表示されるようになる。
文字色・背景色を設定する
文字色・背景色の設定もあまり感覚的ではない。
列の編集のDefaultCellStyleプロパティで

このように設定したとする。こんなボタンのイメージ → 削除
その結果がこちら。

まさかの、セルのボタン以外のところだけ背景色の設定。ボタンに関しては何の設定も取り合ってくれていない。
あくまで、セルに対する様式なので、セルの上に配置されたボタンの設定ではないらしい。
ボタン自体の文字色・背景色を設定するには、以下のいずれかが必要だった。


FlatStyleを[Flat]または[PopUp]にする必要があったのだ。
これを設定すると、以下のようになる。
FlatStyle : Flat

(まさにフラットなので、ボタンだと気づきにくいかもしれない。)
FlatStyle : PopUp

少し立体的な視覚効果があるため、ボタンだと分かりやすい。
まとめ
ボタンに文字を表示させるには、以下のプロパティ設定が必要
ColumnType : DataGridViewButtonColumn
Text : (任意の文字)
UserColumnTextForButtonValue : True
Text : (任意の文字)
UserColumnTextForButtonValue : True
また、ボタンの文字色・背景色を変更するには、以下のプロパティ設定が必要
DefaultCellStyle ForeColor :(任意の設定)
DefaultCellStyle BackColor :(任意の設定)
FlatStyle : Flat または PopUp
DefaultCellStyle BackColor :(任意の設定)
FlatStyle : Flat または PopUp
ちなみに、デフォルト(FlatStyle : Standard)の角が取れたボタンの形で背景色を設定することできない。プロパティをいじるだけでは不可能で、カスタム描画するしかないようだ。

コメント