none
gridの行を常に表示した状態にしたい。 RRS feed

  • 質問

  • いつも参考にさせていただいています。

    vb2005でWindowsアプリケーションを開発しています。

     

    DataGridViewで下記のように書けば、EXCELの"ウインドウ枠の固定"のように、横スクロールが発生しても

    消えないように設定することが可能です。
    Columns("項目名").Frozen = True

     

    これを行に対して行うことはできないでしょうか。
    1行目から3行目まではタイトルのようなもので、4行目からが本当のデータの場合などを表現したいのです。。

    (縦スクロールが発生しても消えないようにしたい。)

    また、最終行も同様に、縦スクロールが発生しても、常にこの行が表示されているようなことは可能でしょうか。
    (たとえば最終行を合計行にして、常に表示させておきたい。)

    よろしくお願いします。

     

    2008年2月4日 5:29

回答

  • DataGridViewColumn 同様、DataGridViewRow にも Frozen プロパティが存在します。

    まあ最終行も固定ってのはこれでは実現できませんが。

    ColumnWidthChanged イベントでもう一つの DataGridView の列幅を同期させればそれっぽく見えるかしらん?

    2008年2月4日 6:54

すべての返信

  • 自己レスです。

    合計行については、ちょっと強引ですが、DataGridView1とDataGridView2を置いて、HorizontalScrollingOffsetの値を同じに

    するようにすることで、実現できました。(カラムの横幅変更はできないことが前提になりますが、、)

     

        Private Sub DataGridView1_Scroll(ByVal sender As Object, ByVal e As System.Windows.Forms.ScrollEventArgs)

        Handles DataGridView1.Scroll
            DataGridView2.HorizontalScrollingOffset = DataGridView1.HorizontalScrollingOffset
        End Sub

     

    どうせ横幅が変更できないのであれば、タイトルも同じようにすることで実現可能か。。と考えています。

    すいません。ありがとうございました。

     

    2008年2月4日 6:11
  • DataGridViewColumn 同様、DataGridViewRow にも Frozen プロパティが存在します。

    まあ最終行も固定ってのはこれでは実現できませんが。

    ColumnWidthChanged イベントでもう一つの DataGridView の列幅を同期させればそれっぽく見えるかしらん?

    2008年2月4日 6:54
  • >DataGridViewColumn 同様、DataGridViewRow にも Frozen プロパティが存在します。

    本当だ。。最初に気づくべきでした。。

     

    >ColumnWidthChanged イベントでもう一つの DataGridView の列幅を同期させればそれっぽく見えるかしらん?

    たしかに見えそうです。

     

    ありがとうございました。
    2008年2月5日 3:48