gpt4 book ai didi

c# - 使停靠控件可见时更改 Z 顺序

转载 作者:太空狗 更新时间:2023-10-29 22:26:32 26 4
gpt4 key购买 nike

我在 .NET Framework 4.0 版中使用 C# Winforms

我有一个面板,其中包含四个标签,所有标签都停靠在面板的顶部。隐藏中间两个标签。

---顶---
标签一(可见)
标签二 -(不可见)
标签三(不可见)
标签四-(可见)
---底部---

点击带有以下代码的按钮时

private void btnShowLabels_Click(object sender, EventArgs e)
{
this.lblTwo.Visible = true;
this.lblThree.Visible = true;
}

标签 2 和 3 出现了,但它们的 z 顺序被混淆了,如下所示。

---顶---
标签一(可见)
标签(可见)
标签两个 -(可见)
标签四-(可见)
---底部---

为什么 z 顺序会发生变化,我该如何阻止这种情况发生。

我意识到我可以在点击事件中使用 BringToFront() 重新排序所有标签,但这感觉有点矫枉过正,尤其是对于更复杂的停靠安排。

最佳答案

设置 Control.Visible = True 有时会更改 Z 顺序。这似乎取决于句柄的创建。

对我来说,这个(显然毫无意义的)声明非常有用:

foreach (Control ctrl in FlpDetails.Controls)
{
IntPtr DummyHandle = ctrl.Handle;
}

它强制所有控件创建句柄。之后 control.visible = true 不再更改 Z 顺序。

我从外部网站获得了该解决方案,该网站现在转发到钓鱼网站。

关于c# - 使停靠控件可见时更改 Z 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22050658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com