- PR -

[VB.NET]タスクバーのボタンがクリックされたことを取得する

1
投稿者投稿内容
アルマカン
会議室デビュー日: 2004/07/08
投稿数: 4
投稿日時: 2005-11-16 12:27
フォームの最小化ボタンを押下すると、最小化されますが、
その状態でタスクバーにあるアプリケーションのボタンをクリックしたとき、クリックされたことを取得するイベント等はあるんでしょうか?
Formイベントを一通り確認してみたんですが、それらしいものが見つかりませんでした。

どなたかご存知の方がおられましたら、ご教授ください。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-11-16 12:51
引用:

その状態でタスクバーにあるアプリケーションのボタンをクリックしたとき、クリックされたことを取得するイベント等はあるんでしょうか?



「タスクバーボタンのクリック」に対応するイベントは無いです。

アプリの仕様にもよりますが、通常、結果的には Form がアクティベイトされるので、Form.Activated イベント辺りで代用できませんか?
アルマカン
会議室デビュー日: 2004/07/08
投稿数: 4
投稿日時: 2005-11-16 12:58
渋木宏明(ひどり)さん、ありがとうございます。

実は、そのフォーム上にはタイマー処理があるもので、
数分おきにフォームのActivatedイベントを呼び出して、その中でデータを表示するなどの処理を行っています。

タスクバーのボタンをクリックすると、全画面表示になるようにしたいんですが、
そのコードをActivated内で書いてしまうと、
最小化した状態であっても、数分おきに表示データを更新すると共に、全画面表示されてしまうんです。

他にタスクバーのボタンをクリックすると、全画面表示になるような方法はありますでしょうか?

やはり、Activated内にデータ表示を更新するコードがあるのがまずいんでしょうか?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2005-11-16 13:05
resizeイベントで、ウィンドウ状態を見るとか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-16 13:07
引用:

アルマカンさんの書き込み (2005-11-16 12:58) より:

やはり、Activated内にデータ表示を更新するコードがあるのがまずいんでしょうか?


概念的に Activated イベントではないですよね?
それに、Activated は Deactive から復帰した際にも起こります。
非常にまずかろうと思います。

別のメソッドかイベントを定義して呼び出しましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-11-16 13:09
引用:

タスクバーのボタンをクリックすると、全画面表示になるようにしたいんですが、



難しそうですねぇ。

引用:

やはり、Activated内にデータ表示を更新するコードがあるのがまずいんでしょうか?



アプリの細かい仕様が分かりませんが、「表示更新」だけが目的で Activeate はしないですね。

タイマを仕掛けているなら、単にタイマハンドラの中で表示更新すればいいんじゃないかと。

更新した情報を、ウィンドウを最前面に出してユーザに見せ付けたいなら、表示更新後にウィンドウを Activate する、ってシナリオはありなのかもしれませんが、個人的にはちょっとうるさくてイヤかなぁ。。。




_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#

[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2005-11-16 13:13 ]
1

スキルアップ/キャリアアップ(JOB@IT)