Form1とForm2を用意し、1をメインフォームとするために初期設定で2をHideしています。
1と2のフォーム切替用ボタンSpeedButton1があり、
KeyDownイベントで、ショートカットキーを割り当てています。
*** KeyDownイベント ***
if Key = VK_F4 then
begin
SpeedButton1.click;
end;
***********************
1と2を交互にShowとHideで表示/非表示させています。
*** SpeedBottun1Clickイベント*********************
//アクティブなフォームが1の場合(2がHideの場合)
Self.Hide;
Form2.Show;
**************************************************
マウスのクリック(SpeedButton1)は問題ないのですが、
KeyDownイベントからSpeedBottun1Clickイベントに入ったときに不具合が出ます。
Form1のActiveControlがコンボボックスにあるときに押下し、
Form1をHide、Form2をShowした直後、
Form2の前面にHideしたはずのForm1のコンボボックスが
DropDownした形で残像が残ってしまいます。
同じクリックイベントを通過してるはずなのですが、
なぜKeyDownイベントの有無で結果が異なるのでしょうか?
識者の方々、ぜひご教授ください。
F4キーはコンボボックスをドロップダウンさせるショートカットキーです。
他のキーを割り当てると回避できると思います。
ふぐちゃんさんありがとうございました。
どおりで何度ステップ実行してもわからないはずでした。
もしご存知ならば、他のファンクションキーで、
そういう特殊なショートカットがあったら教えていただけませんでしょうか?
ツイート | ![]() |