如何检查控件的锚点属性的值?
假设我有一个控件,代码开发人员可以在设计器中设置锚值。在 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)
有些人可能会想问为什么要这样做...如果锚点设置在控件的那一侧,我不想在此控件上提供调整大小操作。
由于 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)