如何在 C# 中检查 control.anchor 属性值?

Joh*_*ohn 1 c# anchor

如何检查控件的锚点属性的值?

假设我有一个控件,代码开发人员可以在设计器中设置锚值。在 C# 代码中,如何检查是否为控件设置了任何特定的锚值?

例如,假设下面的 Sender 控件具有由开发人员为此控件设置的顶部、左侧和右侧锚点。检查顶部锚点是否已设置的 if 语句是什么样的?

private int DetermineMouseWhere(Control Sender)
{
    if (Sender.Anchor == AnchorStyles.Top) // what should this be like
    {
        //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

有些人可能会想问为什么要这样做...如果锚点设置在控件的那一侧,我不想在此控件上提供调整大小操作。

Mat*_*son 5

由于 AnchorStyles 具有 [Flags] 属性,因此可以使用Enum.HasFlag()方法来确定它:

if (Sender.Anchor.HasFlag(AnchorStyles.Top))
Run Code Online (Sandbox Code Playgroud)

对于 .Net 3.5 或更早版本:

if ((Sender.Anchor & AnchorStyles.Top) != 0)
Run Code Online (Sandbox Code Playgroud)

或者:

if ((Sender.Anchor & AnchorStyles.Top) == AnchorStyles.Top)
Run Code Online (Sandbox Code Playgroud)

  • @John 那么你可以 - 你知道 - 接受你认为最合适的答案,如果你真的很感激;) (2认同)