#c# #winforms
#c# #winforms
Вопрос:
Хорошо, я беру информацию на основе выделенного текста в выпадающем списке, передавая ее в текстовое поле в другой форме.
У меня есть класс, называемый переменными
public class variables
{
public string Design { get; set; }
public string Classnum { get; set; }
}
то есть получение информации от пользовательских выборов в полях со списком
Это в другом классе под названием home
private void cbfanclass_SelectedIndexChanged(object sender, EventArgs e)
{
var.Design = cbdesigntype.Text.ToString();
}
Когда я использую точку останова, я вижу, что var.Design содержит правильные данные.
моя проблема начинается, когда я отправляю его в свой 3-й класс
public partial class DesignPar : Form
{
public variables var = new variables();
public DesignPar()
{
InitializeComponent();
}
private void DesignPar_Load(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
textBox2.Text = var.Design;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
}
Я введу данные в текстовое поле 1, чтобы активировать событие, но в текстовом поле 2 ничего не появляется, и с помощью break это показывает, что var.design//textbox 2 просто «не null, а»»
итак, мой вопрос, очевидно, в том, что я где-то неправильно передаю данные
Комментарии:
1. Позвольте мне посмотреть, где вы создаете экземпляр
DesignPar
формы.
Ответ №1:
это потому, что вы создаете новый экземпляр класса переменных
вы должны создать частное свойство в DesignPar() следующим образом
private string design {get; set;}
и добавьте перегруженный конструктор, принимающий параметр
и передайте ему параметр этого конструктора из класса home
вот так
DesignPar(cbdesigntype.Text.toString())
и в вашем перегруженном конструкторе присвоите значение
DesignPar(string design)
{
this.design = design;
}
надеюсь, это поможет
Комментарии:
1. Спасибо, и оголите меня, но куда именно я должен поместить DesignPar(cbdesigntype.Text. toString())
2. взгляните на эту ссылку, она поможет вам social.msdn.microsoft.com/Forums/windows/en-US /…
Ответ №2:
Предположим, что какое-то нажатие кнопки запускает вашу форму DesignPar…
private void button1_Click(object sender, EventArgs e)
{
using (DesignPar form = new DesignPar())
{
form.var = var;
form.ShowDialog();
var = form.var;
}
}
Теперь в DesignPar…
public partial class DesignPar : Form
{
public variables var = null;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (var == null)
var = new variables();
textBox2.Text = var.Design;
}
}