none
TreeViewコントロールに追加した項目の最終行が表示せず RRS feed

  • 質問

  • こんにちは。初めて投稿させていただきます。

    TreeViewコントロールに項目を追加したところ、最終行が表示されないという現象に悩んでいます。

    動作は次の手順で確認できます。

    (1)適当なVisialBasicのWindowsフォームアプリケーションプロジェクトを作成する

    (2)Form1.vbをデザインで開き、TreeViewコントロールを配置する(Location=20,20)(Sizeは200,100)

    (3)Anchorを「Top,Bottom」に設定する

     

    (4)Form1.vbのコードに次のようにコーディングする

      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For _i As Integer = 1 To 10
          TreeView1.Nodes.Add(String.Format("{0}", _i))
        Next
      End Sub
    

    実行する

     

    現象の確認

    (1)Form1をリサイズすると、「1」~「9」まではスクロールバーが表示してスクロールすれば「10」が表示されるが、
    リサイズしてスクロールバーが消えた時のTreeViewではスクロールによって「10」を表示することができない。

    +-8

    |

    +-9

    |

    となり、Lineは下へ続くけど、スクロールできないので、表示することができない。

     

    不思議なことに、デザイン時のNodesコレクションに設定した場合は、正しくスクロールバーが現れて全体が表示できるのですよ。

    こんな現象を解決した方はいらっしゃらないでしょうか?

    2010年5月19日 15:58

回答

すべての返信

  • TreeView Scrolling Doesn't Account for Last Node | Microsoft Connect

    これですかね。長いこと放置されてるようですけど。

    .NET 4 で修正されているみたいです。

    • 回答としてマーク かっとし 2010年5月20日 8:32
    2010年5月19日 17:15
  • ありがとうございます。

    ごめんなさい。対象バージョンの記載を忘れていましたね。フレームワークのバージョンは3.5です。

    提示URLの回避策で正常にスクロールバーが表示される事を確認しました。

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

    #.これからプログラムの全TreeViewに適用しなきゃ行けないので...大変。

    (5/20 22:00追記)

    .Net 4.0 では現象でないことを確認しました

    2010年5月20日 8:32