形式的图像作为全局变量

时间:2014-09-08 19:02:46

标签: c#

如果你看一下恢复eric按钮,你会看到我将他的尺寸恢复到135.我想通过一个变量将他的尺寸恢复到原来的大小。我希望在首次打开表单时声明此变量,这样它将始终创建一个新的原始高度&我在表单设计器中更改它们时的宽度。

我尝试将form_load设为public并声明如下变量:int originalWidth = pictureEric.Width;

然后我尝试在恢复无效中调用这些变量,以便我可以再次恢复它们。 然而,它一直告诉我当前上下文中不存在变量。

有什么想法吗?

public partial class formSouthPark : Form
{

    public formSouthPark()
    {
        InitializeComponent();
    }

    public void formSouthPark_Load(object sender, EventArgs e)
    {
        this.BackColor = Color.Snow;
        int originalHeight = pictureEric.Height;
        int originalWidth = pictureEric.Width;
    }

    private void buttonRestoreEric_Click(object sender, EventArgs e)
    {
        pictureEric.Height = originalHeight;
        pictureEric.Width = originalWidth;
    }
}

2 个答案:

答案 0 :(得分:1)

你应该对可变范围做一些研究 - 谷歌是一个很好的起点。 This article on informIT还提供了一个很好的解释,说明整个范围的想法是如何运作的。

然而,跳过整个解释(为了简洁和因为其他人已经解释得比我更好),你需要使用以下代码来使你的程序工作:

public partial class formSouthPark : Form
{
    public formSouthPark()
    {
        InitializeComponent();
    }

    // These variables need to be declared outside both function scopes.
    int originalHeight;
    int originalWidth;

    public void formSouthPark_Load(object sender, EventArgs e)
    {
        this.BackColor = Color.Snow;
        originalHeight = pictureEric.Height;
        originalWidth = pictureEric.Width;
    }

    private void buttonRestoreEric_Click(object sender, EventArgs e)
    {
        pictureEric.Height = originalHeight;
        pictureEric.Width = originalWidth;
    }
}

答案 1 :(得分:-1)

您的全局变量不是全局变量。

更改

public void formSouthPark_Load(object sender,EventArgs e)

{
    this.BackColor = Color.Snow;
    int originalHeight = pictureEric.Height;
    int originalWidth = pictureEric.Width;
}

int originalHeight; int originalWidth;

public void formSouthPark_Load(object sender,EventArgs e)

{
    this.BackColor = Color.Snow;
    originalHeight = pictureEric.Height;
    originalWidth = pictureEric.Width;
}