【发布时间】:2023-03-24 17:00:02
【问题描述】:
在运行时,我根据需要向主窗口添加(和删除)几个控件,在 Designer 中该主窗口仅包含带有一些功能按钮的 ToolStrip。在某些情况下,我想在 toolStrip 旁边添加一个信息标签,但我无法使其可见,即。它隐藏在下面。标签的代码很简单
infoLabel = new Label();
infoLabel.AutoSize = true;
infoLabel.Location = new System.Drawing.Point(200, 10);
infoLabel.Size = new System.Drawing.Size(35, 13);
infoLabel.BackColor = System.Drawing.SystemColors.Control;
infoLabel.Font = new System.Drawing.Font("Arial", 13);
infoLabel.ForeColor = System.Drawing.Color.Black;
infoLabel.TabIndex = 1;
infoLabel.Text = "this is info";
infoLabel.BringToFront();
this.Controls.Add(infoLabel);
TabIndex 和 BringToFront 我添加了作为绝望的行为,它没有帮助。顺便说一句,ToolStrip 的 TabIndex 是 2,而它的 BackColor 我改为透明的。
但是,当我在设计器中的 ToolStrip 上放置标签时,它是可见的(即在顶部)。然后我分析了代码,但没有发现与我正在编写的内容有任何不同。我在这里错过了什么?
【问题讨论】:
-
infoLabel.BringToFront();之后this.Controls.Add(infoLabel);?我们首先将infoLabel添加到this上,然后使infoLabel成为topmost -
是的,当控件尚未添加到其父级时,BringToFront() 无法执行任何操作。什么都不能摆在面前。例外会很有用。
-
是的,它有效!非常感谢