none
DataGridViewの境界線の色 RRS feed

  • 質問

  • DataGridViewコントロール全体の境界線のスタイルは
    DataGridView1.BorderStyle = BorderStyle.None
    などで設定できますが
    その線の色を指定することは可能なのでしょうか?

    よろしくお願いします。
    2009年6月17日 6:14

回答

すべての返信

  • 以下のサンプルが役に立つのではないかと思います。

    http://youryella.wankuma.com/Library/Extensions/Control/BorderDraw.aspx
    2009年6月17日 6:49
  • GX999さん、ありがとうございます。

    サンプルを確認しましたがイマイチ理解できませんでした。
    もう少し解説をお願いできませんでしょうか?

    よろしくお願いします。
    2009年6月17日 8:46
  • コントロールの境界線は自力で描画しないといけません。
    GX999 さんが紹介されたサンプルは Panel ですが、これを DataGridView に置き換えれば理解しやすいと思います。
    ポイントは OnPaint で、自力で Border の矩形を描いている部分になります。

    全くコーディングしたくないというのであれば、こんな方法もあります。

     WinForms: color DataGridView border - Stack Overflow
     http://stackoverflow.com/questions/161513/winforms-color-datagridview-border

    ・DataGridView を Panel の中に配置する
    ・DataGridView の Dock は Fill にする
    ・Panel の Padding を境界線の幅にする
    ・Panel の BackColor を希望の色にする
    2009年6月17日 9:36
  • totojoさん、ありがとうございます。
    自力で描画はまだちょっと難しいみたいです。
    今回はPanelで代用したいと思います。

    また質問がありましたら
    よろしくお願いします。
    2009年6月17日 13:21
  • GX999さん、totojoさん
    いつもお世話になっております。

    jaco17さん、はじめまして。
    MSDNフォーラムのご利用ありがとうございます。
    問題が解決して良かったです(^-^)

    せっかくなので、GX999さんからご紹介のあったDataGridViewクラスの自作方法について補足しておきます!
     1.新規追加でプロジェクトにコンポーネントクラス(Component.vb)を追加する。
     2.ご紹介のあったコードを貼り付ける。
     3.BorderControlクラスのコードの中にある"Panel"を"DataGridView"に変更
      Inherits System.Windows.Forms.Panel => Inherits System.Windows.Forms.DataGridView
     4.一度ビルドをする
    "ツールボックス"の"WindowsApplicationコンポーネント"の中に自作クラスが表示されるので、
    それをDataGlidViewのように使えば良いと思います。
    プロパティーの中にBorderColorという項目が出るはずですよ(^-^)

    今回、GX999さん、totojoさんの投稿が有用な情報であったので、
    勝手ながら、回答マークを付けさせてもらいました。

    今後ともMSDNフォーラムをよろしくお願いします!


    マイクロソフト株式会社 フォーラム オペレータ 高橋春樹
    2009年6月24日 8:10