ユーザー コントロール イベントが実行されない理由がわかりません。動的 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
た。
うまくいけば、これで十分に明確になりました。事前に感謝します。