C # Windows Forms, элементы управления на вкладках - PullRequest
1 голос
/ 11 сентября 2009

В моей форме есть tabcontrol, на каждой вкладке у меня есть элемент управления, каждый из этих элементов управления похож, т.е. у каждого из них есть таблица и пара кнопок, и каждый элемент управления установлен на Dock Fill

Когда я просматриваю их элементы в режиме конструктора, происходит что-то странное, первая видимая вкладка имеет элементы управления, расположенные так, как вы ожидаете, и все в порядке, но вторая и третья вкладки каждого элемента управления выглядят не по центру, перекрывая края вкладки.

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

Действительно большая проблема в том, что это, похоже, появляется и во время выполнения, но только иногда.

Я проверил свойства элементов управления и вкладок, но все кажется одинаковым.

Любой совет будет высоко ценится.

С уважением

Мим

Ответы [ 4 ]

0 голосов
/ 04 сентября 2010

Я предполагаю, что это пользовательские элементы управления, о которых мы говорим. Вы изменили макет самого элемента управления (класса) с тех пор, как добавили пользовательские элементы управления на свои вкладки? Если это так, они не будут автоматически обновляться с новым значением (для дока, ширины, высоты и т. Д.).

0 голосов
/ 13 января 2010

Это пользовательский элемент управления, который вы помещаете на вкладку? Если это так, я бы проверил все свойства макета на пользовательском элементе управления и дочерних элементах управления внутри элемента управления. У меня раньше была эта проблема, но я не могу вспомнить, что я сделал, чтобы исправить ее.

0 голосов
/ 04 сентября 2010

Попробуйте это:

  1. Прежде всего, проверьте правильность z-порядка ваших элементов управления. Для этого откройте окно «Структура документа» («Просмотр» -> «Другие окна» -> «Структура документа») и визуально проверьте порядок каждого элемента управления один за другим. При установке свойств стыковки элементов управления z-порядок элементов управления применяется в обратном порядке; то есть: первый дочерний элемент управления, показанный в схеме документа, имеет приоритет стыковки по сравнению с теми же уровнями ниже в окне схемы документа.

  2. Убедитесь, что ни у 2 дочерних элементов управления одного и того же родителя (в вашем случае tabControl) нет DockStyle.Fill. Хорошей практикой при стыковке является только то, что для одного из дочерних элементов управления должна быть установлена ​​заливка. Если у вас есть этот случай, то, скорее всего, переосмысление потока макетов позволит вам изменить его и иметь только один с Fill. Другие стили закрепления (справа, слева, сверху, снизу) могут использоваться в нескольких дочерних элементах управления, и они никогда не вызовут никаких проблем. Только заполнение является проблематичным.

  3. Если 1 или 2 решили вашу проблему, мой совет, если вам следует вообще избегать стыковки и использовать вместо этого привязку. По сути, вы можете получить очень похожие результаты, используя свойство Anchor элементов управления. На самом деле мне больше нравится этот подход, так как он похож на привязку WPF.

  4. Если 1, 2, а не 3, решить вашу проблему. Опубликуйте изображение с контуром вашего документа, и я воссоздаю его здесь, исправлю и опубликую решение здесь.

Надеюсь, это помогло!

0 голосов
/ 11 сентября 2009

Мне кажется, это ошибка, убедитесь, что у вас есть все последние обновления для Visual Studio.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...