Я пытаюсь создать пользовательский элемент управления StackPanel
, который позволит мне складывать новые элементы управления по вертикали (например, WPF StackPanel, но используя формы Windows).re: поведение UserControl в дизайнере и во время выполнения
Я создал новый пользовательский элемент управления с основным кодом, показанным ниже, но даже несмотря на то, что мое местоположение получает назначенные правильные значения в дизайнере, я могу появляться окна сообщений, представление конструктора не изменяет дочерние элементы управления, которые я перетаскиваю на моей панели стека, а также во время выполнения мое место, кажется, перезаписаны с тем, что дизайнер считает правильным (а Место, где я поставил контроль)
Public Class StackPanel
Inherits Panel
Private biasHeight As Integer = 0
Private Sub StackPanel_ControlAdded(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles MyBase.ControlAdded
Dim newControl As System.Windows.Forms.Control = e.Control
'
' NOT WORKING: Set location of the newly added control in a panel and at runtime
'
newControl.Location = New System.Drawing.Point(0, biasHeight)
'
' Store the y-cooridnate of the next control
'
biasHeight = biasHeight + newControl.Height
End Sub
End Class
Почему вы изобретаете колесо? Вместо этого используйте 'FlowLayoutPanel'. –
Спасибо, да, это окончательно правильный путь. Хотя я все еще хотел бы понять, почему мой UserControl не работает, как я бы надеялся. Вышеприведенный пример - просто упрощение контроля, над которым я работаю. – Radek