Я создал пользовательский элемент управления listview
. Я настроил его на добавление новой кнопки каждый раз, когда добавляю новый столбец.
Когда я запускаю программу, содержащую мой пользовательский элемент управления, кнопки столбцов размещаются правильно. Однако во время разработки, когда я добавляю или удаляю столбцы, элемент управления не обновляет добавленные кнопки.
Они в порядке во время выполнения, но во время разработки мне нужно закрыть форму и снова открыть ее (принудительно перерисовать), чтобы обновить кнопки столбца.
Как программно принудительно перерисовать мой пользовательский элемент управления?
Свойство Column выглядит следующим образом:
<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)
Но по некоторым причинам он не работает. Во время разработки каждый раз, когда я добавляю столбец, соответствующая кнопка не добавляется.