none
DataGridViewCheckBoxCellでのチェックボックス表示、非表示 RRS feed

  • 質問

  • DataGridViewでカラム型を以下のように設定し
    textboxカラム = DataGridViewTextBoxColumn();
    checkboxカラム = DataGridViewCheckBoxColumn();

    textboxカラムにデータを設定し表示した場合
    全てのローにチェックボックスが表示されます。

    ------------------------------
    | textbox | checkbox |
    |-----------------------------|
    |  abc  |   □    |
    |-----------------------------|
    |  def   |   □     |
    |-----------------------------|
          :

    条件によってこのチェックボックスの表示、非表示のを制御を行いたいのですが、
    DataGridViewCheckBoxCellのVisibleプロパティは、
    「非表示にされた行または列にセルが含まれるかどうかを示す値を取得または設定します。」
    となっています。

    条件によってロー毎にチェックボックスの表示、非表示は制御できないのでしょうか?

    例:textboxの値が"abc"だったら、チェックボックスを表示しない

    ------------------------------
    | textbox | checkbox |
    |-----------------------------|
    |  abc  |         |
    |-----------------------------|
    |  def   |   □    |
    |-----------------------------|
          :

    2007年1月29日 9:50

回答

すべての返信

  • DataGridViewCheckBoxCellのVisibleプロパティは、
    HELPを見ていただければわかる通りにGetのみのプロパティで書き込めません。

    DataGridViewCheckBoxCellのReadOnlyプロパティを使うと表示はされますがチェックボックスをクリックしても変化しないようにできます。
    dataGridView[n,m].ReadOnly = true;

    「非表示にされた行または列にセルが含まれるかどうかを示す値を取得または設定します。」の「または設定」は誤植でしょうね。

    2007年1月30日 8:30
  • 当方でも、ReadOnlyで制御してみましたが、
    見た目が変わらない為、ReadOnlyのチェックボックスとチェック可なチェックボックスとの
    差別化(背景色を変える等)が必要ですね。

    セルの背景色は変えられるが、チェックボックスの□の色を変えられない問題が出てきましたが。。。


    チェックボックス以外にプルダウン、ボタンのセルの場合も、ReadOnlyで制御を行うしかないのでしょうか?

    2007年1月31日 2:11
  • >チェックボックス以外にプルダウン、ボタンのセルの場合も、ReadOnlyで制御を行うしかないのでしょうか?
    そうですね。

    あとは、ご自分で以下のサイト(ご自分のHELPにも同じものがあるはずです)のように派生して拡張することもできます。
    http://msdn2.microsoft.com/ja-jp/library/ms171619(VS.80).aspx
    2007年1月31日 6:05
  • えムナウさん、ありがとうございます。

    サイトを参考にカラムクラス、セルクラスを派生し、

    非活性ぽく見せることが出来ました。

    後は、クリックした時にセルのクリックイベントが発生してしまうので

    うまくイベントをキャンセルしないといけないですけど。

     

    また、何かありましたら宜しくお願いします。

     

    2007年2月1日 1:35