次の様な簡単なテストプログラムを準備します。
(MSDNフォームに投稿したコードと同じです。→MSDNフォーラム)
(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」を表示することができない。
回避策
次のコードをForm_Loadで実行する
Dim _mi As Reflection.MethodInfo = TreeView1.GetType().GetMethod("ForceScrollbarUpdate", _
Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
_mi.Invoke(TreeView1, New Object() {True})
Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
_mi.Invoke(TreeView1, New Object() {True})
0 件のコメント:
コメントを投稿