Я изо всех сил пытаюсь выяснить, почему мои события пользовательского контроля не выполняются.У меня есть динамический UserControl, "MainMenu", в динамическом UserControl, "MainControl".
В MainMenu у меня есть следующее:
public partial class MainMenu : UserControl
{
public MainMenu()
{
InitializeComponent();
///
///Event Subscriptions
///
this.LostFocus += this.MainMenu_LostFocus;
}
public void MainMenu_LostFocus(object sender, EventArgs e)
{
this.Visible = false;
}
}
В MainControl:
public partial class MainControl : UserControl
{
private Custom_UI.MainMenu mainMenu = new Custom_UI.MainMenu();
public MainControl()
{
InitializeComponent();
mainMenu.Visible = false;
mainMenu.BringToFront();
this.Controls.Add(mainMenu);
mainMenu.BringToFront();
}
private void menuButton1_Click(object sender, EventArgs e)
{
if (mainMenu.Visible)
{
mainMenu.Visible = false;
}
else
{
mainMenu.Visible = true;
this.Focus();
}
}
}
И, наконец, основная форма:
public partial class Form1 : Form
{
MainControl mainControl = new MainControl() {
Dock = DockStyle.Fill
};
public Form1()
{
InitializeComponent();
this.Controls.Add(mainControl);
}
}
Итакв основном, метод MainMenu_LostFocus
не вызывается, когда я щелкаю в другом месте формы.Я также попытался использовать this.MouseLeave
вместо this.LostFocus
.
Надеюсь, это было достаточно ясно, и спасибо заранее.