DataGridViewにチェックボックスが表示されない

C#(VB.NET)でのお話。
DataGridViewにチェックボックスを表示できなくてハマったので覚え書き。

まず、DataGridViewのDataSourceとして、dataSet1を用意し、その中(Tables→Columns)にDataType=System.Boolean(チェックボックスで利用したいのでbool型)のメンバを用意。


で、そのメンバをDataGridView1の列として追加する。
ColumnTypeは、DataGridViewCheckBoxColumnとして追加。

これで、指定したカラムにチェックボックスが表示されるようになる筈だが、何故か何も表示されない。


何が悪いのかさっぱり分からず、新規プロジェクトで同様の方法で試してみたが、その場合は、きちんと表示される。


全く原因が分からないんで、ダメモトで1つ1つプロパティの値を変更しながらチェックしてみた。

すると、FlatStyleの設定値次第で表示されることが分かった。

なぜか、FlatStyleがStandard(デフォルト値)、Systemの場合、何も表示されないが、Flat、Popupの場合、表示される。

FlatStyle=Flatの場合

FlatStyle=Popupの場合

Visual Studio 2008のバグなのか、イマイチ原因が分からないけど、とりあえずFlatStyleの値を変更し、問題を回避してみることにした。



Tagged:

6 Comments

  1. やまなか 3月 10, 2009 5:47 pm  返信

    私もはまりました。
    参考にさせていただきました。
    ありがとう!

  2. カイ 3月 18, 2009 6:03 pm  返信

    同じくはまりましたが、
    私の場合は列の高さを広げるとFlatStyleがStandardでも
    表示されるようになりました。

  3. osada 3月 18, 2009 7:28 pm  返信

    なるほど、縦幅が狭いとチェックボックスが消えて見える
    というオチなんですね。
    縦幅を広げられるなら、この解決方法がベストですね。

  4. sl 11月 26, 2009 5:30 pm  返信

    原因がわからずほぼ一日ハマってました。
    ほんと助かりました!

  5. つぼぼ 11月 25, 2010 4:34 pm  返信

    ありがとうございます。
    私も、助かりました^^;
    おかげさまで、定時で帰れそうです。

  6. TK 3月 30, 2012 5:36 pm  返信

    高さを低くしたかったのですが、
    Flatstyleで解決できるとは。

Leave a comment

メールアドレスが公開されることはありません。


*

CAPTCHA