Пристыковка элементов управления работает некорректно в Visual C #

Вот что я сделал:

  1. Поместите элемент управления TextBox
  2. Установите для свойства Multiline значение True, а для свойства Dock - Fill.
  3. Поместите элемент управления Button (также работает с ToolStrip, который по умолчанию закреплен вверху, и многими другими элементами управления)
  4. Установите для свойства Dock значение Top

Вот проблема, с которой я столкнулся:

Кнопка перекрывает текстовое поле.

Разве верх текстового поля не должен находиться внизу кнопки? Почему кнопка перекрывает это?


person flarn2006    schedule 01.10.2013    source источник


Ответы (1)


Вы используете неправильную последовательность: когда вы сначала размещаете свой TextBox и устанавливаете его Dock Свойство на Fill, он занимает Form's всю клиентскую область, а затем, когда вы размещаете свой Button, он накладывается на ваш TextBox. Попробуйте добавить Button, сначала установив для своего свойства Dock значение Top, а затем добавьте свой TextBox, установив для своего свойства Dock значение Fill. Затем он должен работать должным образом.


При дальнейшем исследовании похоже, что это связано с z-порядком, если вы щелкните правой кнопкой мыши свою кнопку и выберите отправить на задний план, это должно привести к исправлению текстового поля.

person Mark Hall    schedule 01.10.2013
comment
Хорошо, но как мне это изменить, если я уже разместил элементы управления, не удаляя их? Просто если позже я решу добавить новый закрепленный элемент управления, мне не захочется удалять его и делать это снова. Есть ли более быстрый способ сделать это, кроме редактирования файла .Designer.cs? - person flarn2006; 01.10.2013
comment
Похоже, это связано с z-порядком, если вы щелкните правой кнопкой мыши свою кнопку и выберите отправить обратно, это должно привести к исправлению текстового поля. - person Mark Hall; 01.10.2013