Как я могу сделать одну форму, постоянно накладывая другую форму? - PullRequest
0 голосов
/ 28 ноября 2011

Мне нужно, чтобы form2 находилась поверх form1 и имела такой же размер и расположение формы1. Особенно, когда местоположение Form1 меняется. Просто, как мне заставить form2 следовать form1?

Ответы [ 2 ]

0 голосов
/ 28 ноября 2011

Похоже, вы ищете неправильное решение. Я хотел бы создать 2 пользовательских элементов управления , один для вашего текущего Form1 и один для вашего текущего Form2.

Поместите прокручиваемый текст в UserControl1 и Image в UserControl2.

Добавьте оба этих пользовательских элемента управления в форму, перекрывая их, и измените видимость пользовательских элементов управления вместо создания новых форм. При обмене:

private void SwapVisibility() {
    UserControl1.Visible = !UserControl1.Visible;
    UserControl2.Visible = !UserControl2.Visible;
}

Установите для свойства Visibile UserControl2 значение false изначально.

0 голосов
/ 28 ноября 2011

Подпишитесь на SizeChanged событие form1, добавив обработчик событий либо в конструкторе, либо через меню свойств в Visual Studio, и обновите в нем размер и позицию form2.

Чтобы добавить обработчик событий вручную, добавьте следующее в ваш конструктор:

this.SizeChanged += new System.EventHandler(this.AlbumChooser_SizeChanged);

(Если вы просто наберете this.SizeChanged +=, тогда нажмите дважды на оставшуюся часть строки, и для вас будет создан метод обработчика событий). Тогда обработчик будет выглядеть так:

    private void AlbumChooser_SizeChanged(object sender, EventArgs e)
    {
        form2.Location = new Point(this.Location);
        ....
    }

Возможно, вам также придется подписаться на событие ResizeEnd.

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