none
コントロールを継承させない方法 RRS feed

  • 質問

  • 環境:C#2005

    お世話になります。 夢邪気と申します。

    現在、GroupBox内にDataGridViewを配置してフォームを作成していますがDataGridViewのフォント(ColumnHeadersDefaultCellStyle、RowHeadersDefaultCellStyle等)がGroupBoxのフォントサイズ・設定を継承してしまいます。

    プロパティから自分で変更しても、以下の動作を行うと設定がリセットされてしまいます。

    1.DataGridViewのフォント等を変更
    2.フォームを閉じる
    3.プログラムを実行
    4.再度上記のフォームを開く

    これは、DataGridViewがGroupBoxと自動的に親子関係として関連づけられているからだと思うのですが、毎回DataGridViewの設定を変更しなければならず面倒なのです。

    DataGridViewのフォントサイズ・設定をGroupBoxの影響を受けないようにするにはどのようしたら良いでしょうか?

    よろしくお願いします。

    2007年1月31日 2:48

回答

  • 同様の内容がマイクロソフトのフィードバックにありました。
    「ColumnHeaderDefaultCellStyle font property reverts to Form's default font.」
    http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=109451

    去年の1月に報告されています。
    フィードバックでは Form の Font に戻る話になっていますが、DataGridView の親(コンテナ)コントロールの Font に戻るようなので、GroupBox の場合も原因は同じだろうと思います。

    一応、回避策として「実行時にセットしろ~」となっています。
    VS2005 の Bata のころから何度か報告されているようですが、すべて「再現不能」になっていました。
    上記の報告にはちゃんと再現手順も報告されていたので、今度は再現不能にはならないと思いますが、進展はないようです。
    sp1 でも直っていないし...

    2007年1月31日 4:30

すべての返信

  • 同様の内容がマイクロソフトのフィードバックにありました。
    「ColumnHeaderDefaultCellStyle font property reverts to Form's default font.」
    http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=109451

    去年の1月に報告されています。
    フィードバックでは Form の Font に戻る話になっていますが、DataGridView の親(コンテナ)コントロールの Font に戻るようなので、GroupBox の場合も原因は同じだろうと思います。

    一応、回避策として「実行時にセットしろ~」となっています。
    VS2005 の Bata のころから何度か報告されているようですが、すべて「再現不能」になっていました。
    上記の報告にはちゃんと再現手順も報告されていたので、今度は再現不能にはならないと思いますが、進展はないようです。
    sp1 でも直っていないし...

    2007年1月31日 4:30
  • TH01さん、情報ありがとうございます。

    お教えいただいたURL、確認してみました。
    VS2005のバグなんですね。 ならどうしようもないな~

    しょうがないので実行時にフォントをセットするようにします。

    ちなみに、私の環境では以下のプロパティが親コントロールであるGroupBoxの
    設定に戻ってしまいました。

    ・ColumnHeadersDefaultCellStyle
    ・DefaultCellStyle
    ・RowHeadersDefaultCellStyle

     

    2007年1月31日 5:35