UserControl があり、KeyDown イベントの問題に直面しています。私の UserControls は、以下のような Windows フォーム キーダウン イベントの取り消しに対して表示されます。
ユーザー コントロールのイベント:
private void UserControl_KeyDown(object sender,KeyEventArgs e)
{
if ((Keys)e.KeyCode == Keys.Escape)
{
this.Visible = false;
}
}
上記のイベントは UserControl を非表示にする必要がありますが、以下のように Windows フォームのキーダウンが取り消されたため、イベントは発生しません。
Windows フォーム:
private void button1_Click(object sender, EventArgs e)
{
panel1.SendToBack();
panel2.SendToBack();
panel3.SendToBack();
panel4.SendToBack();
am.Focus();
this.KeyDown -= new KeyEventHandler(Form1_KeyDown);
}
これは、以下のように UserControls が Windows フォームに追加されると、UserControls を表示します。
private UserControl.UserControl am = new UserControl.UserControl();
public Form1()
{
InitializeComponent();
this.Controls.Add(am);
}
UserControl の可視に対する winform の keydown イベントを取り消し、UserControl を非表示にするために UserControl の keydown イベントを発生させたいのですが、うまくいきません。UserControl イベントの keydown イベントは発生しません。なぜだかわからない?. 適切な方法で同じことを行うには?.