发现一个控件是否显示在屏幕上

本文关键字:显示 是否 屏幕 控件 一个 发现 | 更新日期: 2023-09-27 18:16:34

面板中有一个文本框。

如果TextBow。Visible = true和Panel。可见= False,

是否有办法我可以告诉文本框,虽然它是可见的,但实际上并没有被用户看到。

更清晰。

我有一个可见的文本框在一个不可见的面板。因为面板是不可见的,但它里面的控件是可见的,检查文本框的可见属性并没有给我想要的答案。

我真正想要的是如何检查用户是否可以实际看到控件

发现一个控件是否显示在屏幕上

也许你可以用递归方法检查,如果任何父控件是不可见的?

如果为true,则该控件不可见。如果所有父控件都可见,则该控件也可见,除非该控件本身不可见。

    public bool isVisible(Control c)
    {
        if (c.Visible == false)
            return false;
        else
            if (c.Parent != null)
                return isVisible(c);
            else
                return c.Visible;
    }