在以下代码中,我正在尝试定义自定义类型:
public class WindowPosition
{
public static WindowPosition Below;
public static WindowPosition Right;
}
private void ChildWindow(Form Form, WindowPosition Position)
{
Form.Location = new Point(
Position == WindowPosition.Right ? this.Location.X + this.Width : 0,
Position == WindowPosition.Below ? this.Location.Y + this.Height : 0
);
Form.Show();
}
private void buttonNew_Click(object sender, EventArgs e)
{
ChildWindow(new New(), WindowPosition.Below);
}
代码应该使New
表单直接在主表单下面打开 - 而是在这里打开:
New
的{{1}}设置为StartPosition
。
我认为我不正确地定义了这种类型。我该如何正确定义它?
或者问题是什么,或者我是以错误的方式接近这个?
答案 0 :(得分:7)
你想要一个Enum,而不是一个班级。
enum WindowPosition {
Right,
Bottom
}
像这样引用它:WindowPosition.Right
你正在做的是声明一个类,然后说它有2个与它相同类型的静态成员,这对于某些不同的应用程序来说并不完全不合理,但它不适用于此。
它无法使用您的代码的原因是因为它们都没有被分配任何内容,因此它们都返回null
,这将使WindowPosition.Right == WindowPosition.Left
返回true。