如何让一个表格不断覆盖另一个表格?

时间:2011-11-27 22:49:29

标签: c# winforms

我需要将form2放在form1的顶部,并且与form1的大小和位置相同。特别是当form1的位置发生变化时。简单地说,我如何让form2遵循form1?

2 个答案:

答案 0 :(得分:0)

通过在构造函数中或通过Visual Studio中的属性菜单添加事件处理程序来订阅SizeChanged form1事件,并在其中更新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事件。

答案 1 :(得分:0)

看起来你正在寻找错误的解决方案。我要做的是创建2个User Controls,一个用于当前Form1,另一个用于当前Form2

将滚动文字放在UserControl1中,将Image放在UserControl2中。

将这两个用户控件添加到表单,重叠并更改用户控件的可见性,而不是创建新表单。交换时:

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

Visibile的{​​{1}}属性设置为UserControl2