- - PR -
Buttonにショットカットキーの挙動について
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-08-20 20:13
いつもお世話になっております。
Formを1枚作成し、その上に張る付けるパネルを張り替えることにより 画面の遷移を行なっております。 パネルにはButton、TextBox等のコンポーネントが張ってあります。 で、パネルに貼り付けたButtonにショットカットキーを割り付けた場合の 挙動がおかしいのです。 フォーム上には常に1枚のパネルしか存在しておりません。 (但し、前に表示していた画面はメモリ上にスタックした状態です。) しかし、キーボードでショートカットキーを使用した場合に前に表示していた パネルのイベントが先に実行されてしまいます。 本来は、現在実行しているパネルのイベントが実行されるはずだと思うのですが・・・ ショットカットキーはFormコンポーネントが拾って子供のコンポーネントに 処理を委譲しているという認識なのですが、そもそもその考えが間違っているのでしょうか? どなたか、このような現象に詳しい方が居られましたらご教授願えませんでしょうか。 下記の環境でC/Sのシステムを作成しております。 OS:win2000 framework:.NET framework 1.0 VS.NET:2002 system.windows.form以下のコンポーネントをカスタマイズして開発をしております。 | ||||||||||||
|
投稿日時: 2004-08-20 21:02
VS.NET:2002 とあるんですが、言語が書かれていません。
言語は何ですか?
「前に表示していたパネルのイベントが先に」といことは、 その後に現在のパネルのボタンのイベントが発生しているのですか? イベントの関連付けを行っている部分のソースコードに問題があるだけのように 思えますが、その辺はどんなソースなんでしょう?
後、念のための確認ですが、ショートカットキーとおっしゃっているのは、 アクセスキーのことですよね? (例えば、ボタンが「終了(X)」となっているときにAlt+Xと押すことで 終了ボタンが押されるもののことです。) #Ctrl+何かのキー などで独自に処理されている場合、 #根本的に話が違ってくるので念のための確認です。 | ||||||||||||
|
投稿日時: 2004-08-23 09:58
申し訳ありません。 言語はVB.NETです。
特に特別なことは何も記述していません。 '終了ボタン押下時処理 Private Sub NormalButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NormalButton1.Click '前に表示していた画面に戻る getUIManager().showReturnPanel() End Sub もう一度、挙動を確認してみたところ下記のことがわかりました。 ・前に表示していたパネルのイベントが呼ばれた場合、現在表示しているパネルの イベントは実行されない。 ・アクションキーではなく、マウスでボタンを押下した場合は正しくイベントが 実行される。 ・一度マウスでボタンを押下した後は、アクションキーでも現在のパネルのイベントが 実行される。 3点目を見ると、よねKENさんの言われた通り「イベントの関連付け」の辺りが おかしいのではないかなと思ってきました。 もう一度色々と試してみたいと思います。
その通りです。アクションキーのことです。 ただ、Ctrl+何といった独自の処理は実装してません。 |
1