4

カスタムlistviewコントロールを作成しました。新しい列を追加するたびに新しいボタンを追加するように設定しました。
カスタム コントロールを含むプログラムを実行すると、列ボタンが適切に配置されます。ただし、設計時に列を追加または削除すると、コントロールは追加されたボタンを更新しません。

実行時には問題ありませんが、設計時には、列ボタンを更新するために、フォームを閉じて再度開く (強制的に再描画する) 必要があります。
ユーザー コントロールの再描画をプログラムで強制するにはどうすればよいですか?
列プロパティは次のようになります。

   <MergableProperty(False)> _
   <Editor("System.Windows.Forms.Design.ColumnHeaderCollectionEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", GetType(UITypeEditor))> _
   <DesignerSerializationVisibility(DesignerSerializationVisibility.Content)> _
   <Localizable(True)> _
    Public ReadOnly Property Columns() As ListView.ColumnHeaderCollection
        Get
            Return ListView1.Columns
        End Get
    End Property

そして、次のようにコントロールを再描画しようとしました:

   Me.Invalidate()
   Dim x As New Rectangle With {.X = Me.Location.X, .Y = Me.Location.Y, .Size = Me.Size}
   Me.NotifyInvalidate(x)

しかし、何らかの理由で、機能していません。設計時に、列を追加するたびに、対応するボタンが追加されません。

4

1 に答える 1