如何获取主窗口的坐标

时间:2013-09-09 18:46:29

标签: c# winforms coordinates

尝试创建代码,允许打开或新的表单,如一些带有信息的附加面板。 我要求新表单在主表单下面打开,所以需要找到一些表单坐标,但只能得到0和0:

代码:

public int getCoordinateX()
    {
        return this.Location.X;
    }
public int getCoordinateY()
    {
        return this.Location.Y;
    }

和on_load下一个表单使用

private void PlayListForm_Load(object sender, EventArgs e)
    {
        mainForm formObject = new mainForm();
        this.Location = new Point(formObject.getCoordinateX(), formObject.getCoordinateY());
    }

我哪里错了?

2 个答案:

答案 0 :(得分:1)

在打开PlayListForm的formMain中执行: (这就是你应该如何打开新表格)

        PlayListForm newForm = new PlayListForm(this.Location);
        newForm.Show();

现在以PlayListForm的形式,您需要设置它的构造函数来接收这个位置,如下所示:

    public PlayListForm(Point location)
    {
        InitializeComponent();

        this.Location = location;
    }

答案 1 :(得分:0)

您的代码存在的问题是您正在创建mainForm的新实例。

我刚刚使用过它并且有效。

    private void Form2_Load(object sender, EventArgs e)
    {
        mainForm form = (mainForm)Application.OpenForms["mainForm"];
        this.Location = new Point(form.GetCoordinateX(), form.GetCoordinateY());
    }