Детская форма следует основной форме - PullRequest
2 голосов
/ 27 декабря 2011

Как заставить дочернюю форму следовать основной форме.

например: открыть winform [.net2], winform открывает форму, форма следует основной, если основная форма движется.

enter image description here

Ответы [ 2 ]

2 голосов
/ 27 декабря 2011

Используйте событие LocationChanged из MainForm, чтобы всегда устанавливать местоположение ChildForm.

Рабочий пример:

Form childForm = new Form();

public Form1() {
  InitializeComponent();

  childForm.Width = this.Width;
  childForm.Height = 96;
  childForm.Location = new Point(this.Left, this.Bottom);
  childForm.Show();
  this.LocationChanged += Form1_LocationChanged;
}

private void Form1_LocationChanged(object sender, EventArgs e)
{
  if (childForm != null)
      childForm.Location = new Point(this.Left, this.Bottom);
}
0 голосов
/ 27 декабря 2011

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

Однако вы хотите остановить перемещение главной формы так, чтобы дочерняя форма заканчиваласьэкран.Может ли детская форма перемещаться независимо?А как насчет минимизации и максимизации?

Возможно, вам нужны другие аранжировки, не более одного ребенка, слева и справа, дочерняя форма выше основной формы ...

Стоит написать класс макета и толкнутьвсе это прочее.

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