vaay.jain Ответов: 1

Как я могу получить доступ к значению переменной из одного метода в другой метод в C# ?


У меня есть код функционирования графического интерфейса, в котором у меня есть два метода (для button1 и button2).
Я хочу получить доступ к значениям переменных' h 'и' w ' из метода button1 в метод button2.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace First
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "Select an Image";
            dlg.Filter = "jpg files (*.jpg)|*.jpg";
            if (DialogResult.OK == dlg.ShowDialog())
            {
                this.pictureBox1.Image = new Bitmap(dlg.FileName);
                // pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                Bitmap img = new Bitmap(dlg.FileName);
                int w = img.Width;
                int h = img.Height;
                pictureBox1.Height = h;
                pictureBox1.Width = w;
                textBox1.Text = dlg.FileName;

                            }
         }

        private void button2_Click(object sender, EventArgs e)
        {
        MessageBox.Show("Height is- "+   h.ToString() +"      
        Width is- " +  w.ToString(),"Height & Width");


        }
    }
}


Это не что иное, как глобализация переменных. Но я не могу этого сделать.Пожалуйста, помогите мне в этом контексте.
Заранее спасибо.

Что я уже пробовал:

Я попытался объявить переменные при запуске программы способом' public int h,w;'.

1 Ответов

Рейтинг:
0

Karthik_Mahalingam

Да, вы можете, используя this.pictureBox1 объект, так как вы присваиваете значения h и w графическому окну в событии button1 click.

private void button2_Click(object sender, EventArgs e)
       {
           int h = pictureBox1.Height;
           int w = pictureBox1.Width;
           MessageBox.Show("Height is- " + h + " Width is- " + w, "Height & Width");
       }


Ralf Meier

Или, может быть, лучше вот так :
Сначала вы проверяете, назначено ли изображение PictureBox1, а затем читаете picturebox1. Image.Ширина и PictureBox1.Image.Высота

Karthik_Mahalingam

Да, верно
Я надеюсь, что ОП позаботится об этом

vaay.jain

Но как это сделать в общем случае ?

Karthik_Mahalingam

Значит?

vaay.jain

@Картик .. Я могу использовать picturebox здесь для справки,это нормально, но если я хочу получить доступ к некоторым другим переменным, таким как - выбор, чтение и отображение изображения с помощью первой кнопки(метод) и получение пиксельной информации изображения с помощью второй кнопки(метод).
Ему определенно нужно будет получить доступ к некоторым переменным из одного метода в другой.

Karthik_Mahalingam

затем создайте статический класс с переменными и используйте его для чтения / записи данных

Karthik_Mahalingam

почему такое требование?