Как управлять порядком стыковки в WinForms
как говорится в заголовке, я ищу способ контролировать порядок, в котором элементы закрепляются в верхней части моего элемента управления.
я играл с дизайнером форм windows, и я не могу найти то, что RightClick->Order->SendToFront
делает, потому что thats ровно что я хочу, чтобы это произошло. Насколько я могу это сделать, когда я добавляю свое содержимое в свой контроль, самое новое содержимое всегда находится вверху, и я хотел бы, чтобы новое содержимое было внизу, а самое старое содержимое было на вершине.
резюме: есть ли простой способ в WinForms (C#), чтобы контролировать порядок, в котором вещи пристыковываются к сторонам элементов управления?
Edit: Я должен сделать это из кода позади, когда я добавляю свои элементы управления, я не могу использовать какие-либо функции конструктора WinForm, но то, что я пытаюсь сделать, это имитировать конструктор WinForms SendToBack
и SendToFront
особенности
7 ответов:
перейти к просмотру - > другие окна - > схема документа.
в этом окне перетащите элементы управления, чтобы стыковка была такой, как вам нравится.
Как вы сказали, новый элемент добавляется в коллекцию элементов управления сверху. Если вам нужен новый элемент управления, который будет добавлен внизу, я предложу создать список элементов управления, добавить элементы управления в список, отменить список и добавить список в коллекцию элементов управления.
List<Control> controls = new List<Control(); controls.Add(new myFirstControl()); controls.Add(new mySecondControl()); controls.Reverse(); this.Controls.AddRange(controls.ToArray());
порядок добавления элементов управления в коллекцию элементов управления определяет порядок закрепления.
(ради того, чтобы показать другой вариант): В Visual Studio 2012 (и далее):
- выберите элемент управления, который вы хотите переместить вперед (или назад);
- нажмите на отмеченные ниже кнопки (принести вперед / отправить назад);
Это даст вам возможность переставлять элементы управления в нужном порядке.