如果你看一下恢复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;
}
}
答案 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;
}