2014-09-08 6 views
-2

Если вы посмотрите на кнопку восстановления eric, вы увидите, что я восстанавливаю его размер до 135. Я хотел бы вернуть его размер к исходному размеру с помощью переменной. Я хотел бы, чтобы эта переменная была объявлена ​​при первом открытии формы, так что она всегда будет создавать новую оригинальную высоту &, когда я их изменю в дизайнере формы.Изображение формы как глобальной переменной

Я попытался сделать form_load общедоступным и объявить такие переменные: 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; 
    } 
} 
+6

Вы должны будете сделать некоторое чтение по области определения переменной. –

+7

Вы должны объявить originalHeight и originalWidth как переменные класса. Вы объявляете их в методе Load, поэтому они доступны только там. Объявите их вне метода, но в классе, а затем установите их в методе Load. –

+0

+1, потому что -1 несправедливо, когда у вас есть другие откровенно ленивые плакаты, которые не могут потрудиться, чтобы прочитать документацию или спецификацию языка, но получить десятки или сотни upvotes. – async

ответ

1

Вы должны сделать некоторые исследования по области определения переменной — Google является хорошим местом для начала. 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; 
    } 
} 
+0

Спасибо за ответ! Это было немного глупо, потому что раньше я делал что-то подобное. Извините, что беспокою вас с глупым вопросом :) –

+0

@WimNaudts Нет проблем. В какой-то момент мы все были новичками. –

+0

@WimNaudts Пожалуйста, нажмите галочку рядом с этим ответом, если это поможет ответить на ваш вопрос. –

-1

Ваши глобальные переменные не являются глобальными.

Изменение

общественного недействительными formSouthPark_Load (объект отправителя, EventArgs е)

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

к

INT originalHeight; int originalWidth;

общественного недействительными formSouthPark_Load (объект отправителя, EventArgs е)

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

@ Ming Slogar ответил на это ниже. –

Смежные вопросы