C# WinForms, как использовать нестатичную c строку из одной пустоты в другую? - PullRequest
0 голосов
/ 21 марта 2020

В качестве небольшого проекта для начинающих * i sh я делаю простую программу, которая может воспроизводить .wav файлы , однако я столкнулся с проблемой, когда застрял в ситуации, когда программа получает путь к файлу и имя из одного void, но мне нужно использовать эту строку в другом void, пример кода ее e:

public void ChooseFile_Click(object sender, EventArgs e)
        {
            OpenFile.InitialDirectory = @"C:\";
            OpenFile.RestoreDirectory = true;
            OpenFile.FileName = "";
            OpenFile.Title = "Open .wav file";
            OpenFile.Filter = "wav files (*.wav)|*.wav";
            OpenFile.ShowDialog();

            string fileName = OpenFile.FileName;
            ChosenFileText.Text = fileName;
        }

        public void PlayButton_Click(object sender, EventArgs e)
        {
            SoundPlayer sound = new SoundPlayer(fileName);
            sound.Play();
        }

Как видите, мне нужно использовать строку fileName с помощью SoundPlayer, но в настоящее время я получаю сообщение об ошибке :

«Имя fileName не существует в текущем контексте».

I я пытался сделать это publi c и stati c, но все, что я получаю, это ошибки, кто-нибудь знает, как я могу обойти это?

1 Ответ

0 голосов
/ 21 марта 2020

Вы должны определить переменную внутри класса, чтобы каждый мог получить к ней доступ.

string fileName="";

public void ChooseFile_Click(object sender, EventArgs e)
        {
            OpenFile.InitialDirectory = @"C:\";
            OpenFile.RestoreDirectory = true;
            OpenFile.FileName = "";
            OpenFile.Title = "Open .wav file";
            OpenFile.Filter = "wav files (*.wav)|*.wav";
            OpenFile.ShowDialog();

            fileName = OpenFile.FileName;
            ChosenFileText.Text = fileName;
        }

        public void PlayButton_Click(object sender, EventArgs e)
        {
            SoundPlayer sound = new SoundPlayer(fileName);
            sound.Play();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...