#c#
#c#
Вопрос:
когда пользователь нажимает кнопку, переменной ‘choice’ присваивается значение, и мне нужно использовать это значение переменной в другом классе формы, но сохраненное значение переменной не передается в другой класс формы
вот мой код: форма 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!");
}
}
я помещаю окно сообщения перед тем, как приложение перейдет к следующей форме, и оно показывает «что-то», но когда окно сообщения появляется в новой форме, оно отображает «Вы выбрали: раньше, теперь выберите снова!»
в чем ошибка?
заранее спасибо за помощь
Комментарии:
1. Покажите нам код, как вы устанавливаете
choice
. Вероятно, вам тоже следует сначала отобразить свою форму.2. Когда вы выполняете new Main(), старый экземпляр form (в котором вы, вероятно, установили выбор) исчезает. Вам нужно как-то передать исходный контекст или сделать поле статическим.
3. @OndrejSvejdar … я понятия не имею, как, но я сделал свою переменную статической, и теперь она работает! Большое вам спасибо
Ответ №1:
Насколько я понимаю, как описано здесь, Show
метод MessageBox
возвращает экземпляр DialogResult
, который является предполагаемым средством передачи взаимодействия пользователя с вызывающей стороной.
Комментарии:
1. Я думаю, что у него больше проблем с созданием нового экземпляра своего класса данных, а затем ссылкой на новый экземпляр вместо исходного экземпляра, где он установил значение. Трудно сказать, не видя больше его кода.
2. Это вообще не отвечает на вопрос. С окном сообщения проблем нет. Оно отображается точно, но просто содержимое не соответствует ожиданиям.
Ответ №2:
Используйте статическую переменную для хранения данных переменной «Выбор».. MessageBox.Показать(STATICCLS.Выбор)
Комментарии:
1. Вы не должны решать локальную проблему с помощью глобального решения