我正在努力弄清为什么我的用户控制事件没有执行。我在动态UserControl“ MainControl”中有一个动态UserControl“ 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;
}
}
在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。
希望我已经足够清楚了,在此先感谢。
www说
相关分类