В UserControlsA у меня есть несколько полей, которые необходимо заполнить. С помощью этих данных я создаю объект, содержащий некоторую информацию. Мне нужно передать этот объект в UserControlsB, чтобы я мог отобразить там некоторые данные.
Моя идея заключалась в том, чтобы создать три экземпляра объекта, один в UserControlsA чтобы получить информацию, необходимую для объекта, один в основной форме, чтобы получить «копию» объекта из UserControlsA, и один в UserControlsB, который может получить информацию из основной формы.
Однако это кажется излишним и даже не работает. Вот код:
Основная форма:
Код: Выделить всё
public partial class main : Form
{
public Object object { get; set; }
public UCA uca;
public UCB ucb;
public Form1()
{
InitializeComponent();
uca = new UCA();
ucb = new UCB();
panel2.Controls.Add(uca);
panel2.Controls.Add(ucb);
ucb.Visible = false;
uca.Visible = true;
}
private void button1_Click(object sender, EventArgs e)
{
ucb.Visible = false;
uca.Visible = true;
}
private void button2_Click(object sender, EventArgs e)
{
ucb.Visible = true;
uca.Visible = false;
}
}
Код: Выделить всё
public partial class UCA : UserControl
{
public Object object { get; set; }
public UCA()
{
InitializeComponent();
}
private void bUsage_Click(object sender, EventArgs e)
{
//Data is provided
object = new Object(data);
//I use var parent to try and access the object from the main form.
var parent = Parent as Form1;
object = parent.object;
}
}
Код: Выделить всё
public partial class UCB : UserControl
{
public Object object { get; set; }
public UCB()
{
InitializeComponent();
}
public void updateData()
{
//I try to assign the object from the main form to this form's object.
var parent = Parent as Form1;
object = parent.object;
}
}
Подробнее здесь: https://stackoverflow.com/questions/683 ... -main-form