如何在另一个自定义控件之上添加自定义控件

7

我正在使用winForm。我有2个自定义控件,想要动态添加。第一个在窗体打开时添加,第二个在用户点击按钮时添加。没有什么魔法。问题是当我实例化和添加第二个控件时,它出现在另一个控件下面而不是上面。

肯定有一种方法可以以使控件完全可见(在其他控件的上方)方式添加控件。以下是我创建第二个控件的方式(与第一个控件相同)。我尝试使用show / hide方法,但这不会改变堆栈顺序。

    private void lbRappel_Click(object sender, EventArgs e)
    {
        NoteCallBack noteCallBack = new NoteCallBack("test");
        this.Controls.Add(noteCallBack);
        noteCallBack.Location = new Point(200, 250);
    }

非常感谢您提前的帮助。
马修
2个回答

17
你可以尝试使用 BringToFront 控件方法:
private void lbRappel_Click(object sender, EventArgs e)
{
    NoteCallBack noteCallBack = new NoteCallBack("test");
    this.Controls.Add(noteCallBack);
    noteCallBack.Location = new Point(200, 250);
    noteCallBack.BringToFront();
}

我一定已经经过这个方法几次了,因为我根本没有看到它。非常感谢。 - Mathieu

2
你可以在设计时创建它们并设置正确的z-order顺序,然后在运行时再将它们显示出来。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接