У меня была такая же проблема некоторое время назад. В моем случае у меня был Button и ListView внутри GroupBox, который был внутри SplitContainer, который был внутри UserControl на TabControl. Я хотел, чтобы кнопка в правом верхнем углу была расположена и закреплена, а ListView занял оставшееся место, так что я не мог закрепить ее. Вместо этого он был закреплен во всех четырех местах.
В моем случае моя кнопка и вид списка работали и работали правильно в конструкторе, но в моем работающем приложении кнопка была расположена далеко справа, а размер ListView также имел слишком большую ширину.
Для первого исправления я сделал несколько итераций о расположении кнопки в конструкторе чуть левее, проверил ее режим работы, заново выровнял кнопку в конструкторе по впечатлению, которое я имел при последнем запуске.
Итак, я заставил его работать и начал с чего-то другого, что я должен был сделать в своем приложении. Через некоторое время я получил запрос на новую функцию, и мне понадобилась еще одна кнопка в этой грязной штуке. На этот раз я полностью перестроил элементы графического интерфейса в новом пользовательском контроле, чтобы посмотреть, не появится ли проблема снова. К моему изумлению, эта насмешка с графическим интерфейсом вела себя как ожидалось.
В моем коде я ничего не делал об изменении местоположения, размера, якорей, доков и т. Д. Поэтому проблема должна была быть в коде InitializeComponents()
, созданном дизайнером.
Я начал с различий в обеих версиях и не увидел больших отличий (их было много, но только мелкие, такие как размер, местоположение или название). Поэтому я начал вставлять код из моего сумасшедшего пользовательского контроля в макет и запускать макет в моем приложении. После нескольких копий проблема также появляется в моем макете, поэтому я получил основную причину проблемы.
Как вы думаете, какое свойство привело к сумасшедшему поведению?
Это был MinimumSize моего SplitContainer !
Таким образом, чтобы получить истинную причину вашей проблемы, вы должны начать сначала с пустого UserControl (или формы) и просто поместить на него все элементы с требуемым поведением (размер, местоположение, привязка, док).
Ничего больше!
Затем проверьте, работает ли этот макет так, как вы хотите, и если нет, опубликуйте этот код здесь и сообщите нам, что вы ожидали увидеть.