我正在努力弄清楚为什么我的用户控制事件没有执行。我在动态用户控件“MainControl”中有一个动态用户控件“MainMenu”。
在 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;
}
}
在主控制中:
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
.
希望这我足够清楚,并提前感谢。