错误地定义自定义类型?

时间:2013-04-02 23:38:54

标签: c# .net winforms

在以下代码中,我正在尝试定义自定义类型:

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表单直接在主表单下面打开 - 而是在这里打开:

a

New的{​​{1}}设置为StartPosition

我认为我不正确地定义了这种类型。我该如何正确定义它?

或者问题是什么,或者我是以错误的方式接近这个?

1 个答案:

答案 0 :(得分:7)

你想要一个Enum,而不是一个班级。

enum WindowPosition {
     Right,
     Bottom
}

像这样引用它:WindowPosition.Right

你正在做的是声明一个类,然后说它有2个与它相同类型的静态成员,这对于某些不同的应用程序来说并不完全不合理,但它不适用于此。

它无法使用您的代码的原因是因为它们都没有被分配任何内容,因此它们都返回null,这将使WindowPosition.Right == WindowPosition.Left返回true。