В форме у меня есть несколько кнопок (RadioButton), каждая из которых вызывает разные UserControl .Таким образом, они добавляются динамически в форму следующим образом:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void Something()
{
// Do something in the Form
// Etc etc
}
private void Rb1_CheckedChanged(object sender, EventArgs e)
{
if (!PnContent.Controls.Contains(Uc1.Instance))
{
PnContent.Controls.Add(Uc1.Instance);
Uc1.Instance.Dock = DockStyle.Fill;
Uc1.Instance.BringToFront();
}
else
{
Uc1.Instance.BringToFront();
}
}
private void Rb2_CheckedChanged(object sender, EventArgs e)
{
if (!PnContent.Controls.Contains(Uc2.Instance))
{
PnContent.Controls.Add(Uc2.Instance);
Uc2.Instance.Dock = DockStyle.Fill;
Uc2.Instance.BringToFront();
}
else
{
Uc2.Instance.BringToFront();
}
}
}
(Примечание: «PnContent» - это просто панель в форме)
Теперь в UserControl (Uc1) У меня есть это:
public partial class Uc1 : UserControl
{
public Uc1()
{
InitializeComponent();
}
private static Uc1 _instance;
public static Uc1 Instance
{
get
{
if (_instance == null)
{
_instance = new Uc1();
}
return _instance;
}
}
// Etc etc
private void Btn1_Click(object sender, EventArgs e)
{
// Do something in UserControl
// Etc etc
}
}
И есть проблема.Мне нужно вызвать публичный void Something () из Form , когда Btn1_Click из Usercontrol запущен.
Это сводка моего кода.
Фактическое действие Btn1 в UserControl - сохранить в БД запись.Затем после этого действия необходимо перезагрузить список записей.Но Datagrid используется для Form1 , а также для метода Something () , который загружает все данные
Любые советы, чтобы решить эту проблему с помощью этогота же идея?