2016-10-04 2 views
-2

Когда пользователь нажимает кнопку, значение присваивается переменной «выбор», и мне нужно использовать это значение переменной в другом классе формы, но значение переменной, которое было сохранено, равно n «т быть проанализирован в другой класс формыЗначение переменной не анализируется на другой класс формы C#

вот мой код: форма 1:

public partial class Main : Form 
{ 
    public string choice { get; set; } 
    string d1 = "something"; 

    private void btnD1_Click(object sender, EventArgs e) 
    { 
     choice = d1; 
     this.Hide(); 
     Form2 f = new Form2(); 
     f.Show(); 
    } 
} 

форма 2:

public partial class Form2 : Form 
{ 
    private void Form2_Load(object sender, EventArgs e) 
    { 
     Main m = new Main(); 
     MessageBox.Show("You chose: " + m.choice + " before, now choose again!"); 
    } 
} 

я положил сообщение перед тем, как приложение перейдет к следующей форме и отобразит «что-то», но когда окно сообщения появится в новой форме, оно отобразит «Вы выбрали: раньше, теперь выбирайте снова!». Какая ошибка? заранее спасибо за помощь

+0

Покажите нам код, как вы установите 'choice'. Вероятно, вы должны сначала отобразить свою форму. –

+3

Когда вы делаете новый Main(), старый экземпляр формы (в котором вы, вероятно, установили выбор), исчез. Вам нужно каким-то образом передать исходный контекст или сделать поле статическим. –

+0

@OndrejSvejdar ... я понятия не имею, как, но я сделал свою переменную статичной и ее работу сейчас! Большое спасибо – Jerome

ответ

0

В моем понимании, а документированные here, то Show метод MessageBox возвращает экземпляр DialogResult, который предполагаемые средства связи взаимодействия пользователя с вызывающим абонентом.

+0

Я думаю, что у него больше проблемы с созданием нового экземпляра его класса данных, а затем ссылкой на новый экземпляр вместо исходного экземпляра, где он установил значение. Трудно сказать, не видя больше своего кода. – Adwaenyth

+2

Это вообще не отвечает на вопрос. В поле сообщения нет проблем. Он показывает прямо, но только контент не так, как ожидалось. –

-1

Использование статической переменной для хранения «Выбор» переменных данных .. MessageBox.Show (STATICCLS.Choice)

+1

Вы не должны решать локальную проблему с глобальным решением –

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