2017-08-08 9 views
0

私はwinformアプリケーション(Formname f1)を持っています。そのフォームの中には、2つのボタン(b1とb2)を持つパネル(p1)があります。不可視のパネル内のボタンからフォーム自体にフォーカスを移動することは可能ですか?

パネルはデフォルトでenabled = falseかつvisible = falseです。

私はフォーム(keypressイベント)でenterを押すと、パネルを表示して有効にします。

私は次のようにします私は、ボタン(B1)をクリックして再度ボタンを押すと(preview_keyodwnイベント)を入力します。私はパネルのEnterキーを押すと、再び見えてきませんが今

f1.ActiveForm.Focus 
p1.Enabled = false; 
p1.visible = false; 

。なぜ私はフォーカスがフォーム自体ではなく、ボタン上にあることを知ったのかを確認した後。

Panelが非表示になって無効になったときに、ボタンをフォーム自体に配置しないようにする方法はありますか?

+0

はタブストップ= falseを試すか、よりよい解決策がForm.ProcessCmdKeyをオーバーライドすることであるのTabIndex – live2

+0

を増やすパネルを隠した後、selectメソッド。次に、どのコントロールにフォーカスがあるかは関係ありません! –

+0

@JonathanWillcockそれは非常に良いポイントですtnxは、そのイベントの存在について知りませんでした。私は代わりにそれを使用します(私のやり方よりも良い方法です)。 – Thomas

答えて

0

コール

p1.Enabled = false; 
p1.visible = false; 
f1.ActiveForm.Focus(); 
f1.ActiveForm.Select(); 
関連する問題