Положение кнопки в соответствии с видимостью других кнопок - PullRequest
2 голосов
/ 05 февраля 2012

Это может звучать глупо, но мне нужно знать, как автоматически изменять положение кнопки, когда другие кнопки, которые находятся рядом с ней, все еще не видны. Мне нужно добиться этого в Visual Studio 2005 (я использую C #).

Чтобы дать дополнительные пояснения по этому поводу, скажем, что у меня есть три кнопки в левом верхнем углу формы, которую я создал. Кнопки справа налево: 1- Назад 2- Печать 3- Далее

Первоначально и при первом запуске формы должна быть видна только кнопка «Далее», которая должна занимать верхнюю правую часть экрана. Позже, когда пользователь запускает некоторые события на экране, должны появиться кнопки «Печать» и «Назад», но они также должны отображаться в правом верхнем углу формы, что приведет к той же последовательности, что я упоминал выше. Эта та же последовательность кнопок является требованием, которого мне нужно достичь.

Спасибо за помощь заранее.

Ответы [ 2 ]

5 голосов
/ 05 февраля 2012

Вы ищете FlowLayoutPanel:

http://msdn.microsoft.com/en-us/library/system.windows.forms.flowlayoutpanel.aspx

Установите для FlowDirection значение RightToLeft, добавьте свои кнопки, и вы должны быть в бизнесе.

2 голосов
/ 05 февраля 2012

Вы можете использовать:

Nextbutton.Visible = True; //initially
backbutton.Visible = False; //initially
printbutton.Visible = False; //initially
backbutton.Enabled = False; //initially to prevent tabbing to the control and clicking on it
printbutton.Enabled = False; //initially to prevent tabbing to the control and clicking on it

, а затем в обработчике событий установить

backbutton.Visible = True;
printbutton.Visible = True;
backbutton.Enabled = True;
printbutton.Enabled = True;

Вы могли бы даже изначально установить расположение printButton и backButton, и они простоне быть видимым, но в том месте, где вы хотите, чтобы они были.

Кроме того, если вам нужно установить местоположение, используйте:

someButton.Location = //some location on your form and move all three buttons as needed.

Если вы хотите, чтобы они смещались относительно друг другамог даже сделать:

someButton.Location = (otherButton.Location +- /*Some offset*/) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...