none
VB2005でアプリケーションフレームワークを有効にするとFormのShowInTaskBarの機能が不具合を起こす? RRS feed

  • 全般的な情報交換

  • 外池と申します。致命的ではないのですが、居心地の悪い症状が出てしまい困っています。OSはWindows XP SP2(表示はクラシック)、開発環境はVB2005です。

     

    アプリケーションフレームワークを有効にすると、スタートアップのFormが、ShowInTaskBarがTrueに設定されているにもかかわらず、タスクバーに表示が出なくなってしまいます。

     

    ここでアプリを最小化してやると、何も見えなくなってしまいますが、Alt-Tabでアプリを切り替える時にはアプリのアイコンが出ますので、救うことができます。

     

    救いだしてやると、その後はタスクバーに表示が現れます・・・。

     

    何か、お心当たりのある方から対処(回避)方法のアイデアをご教示頂けると幸いです。

    ------

     

    私が今取り組んでいる、この特定のアプリに関しては、百発百中で症状は再現できるのですが、Formだけが存在する単純な新しいアプリから始めて再現を試みようとしても正常なままで・・・、「回避」すべき部分が見つからず苦慮しているところです。

     

    -----

     

    以下は、チェックの段階で自分なりに知り得た副産物情報です。

     

    問題のアプリは、Formのサイズを固定しているFixedSingleな外観をしています。で、Formの大きさは、外側の大きさではなく、ClientSizeで保存されていることを初めてしりました。

     

    アプリを起動すると、Resizeイベントが2回発生するようです。最初にSizeableな状態で起動する際に1回。その後、FixedSingleに変更すると外側の大きさが若干小さくなるので、その際にもう1回。

     

    その後に、Loadイベントが発生します。で、さらに、Activatedイベント。

     

    この間、一貫して、FormのShowInTaskBarはTrueのままです。

    2008年1月9日 1:56

すべての返信

  • 外池です。

     

    対症療法的ですが、FormのLoadイベントで、ShowInTaskBarを一度Falseにして再度Trueにすることで、症状は回避することができました。

     

    しかし・・・、気持ち悪さは残っています。

     

    2008年1月9日 2:59
  • 外池と申します。

     

    さらに自己レスですが・・・、

     

    Formのイベントを取り扱っていたのは、実は、OnLoadをOverridesしていたのですが、その中でMyBase.OnLoadの呼び出しを先に済ませているのが原因だったようです。独自の処理を先に済ませて最後にMyBase.OnLoadを呼び出すようにしたら、症状は解消しました。

     

    何故このあたりの挙動がアプリケーションフレームワークを使うか否かで異なってくるのか、こればかりは私の理解の範囲を超えていますが、少なくとも、不必要な呪文のようなものが不用になったので、気持ち悪さも解消です。

     

    2008年1月9日 5:11
  • こんにちは、フォーラム オペレータ大久保です。

     

    外池さん、いつもご利用ありがとうございます!

    今回も有益な情報を投稿していただいて、ありがとうございます。

     

    ところで、この投稿ですが、できましたら「コメント」に変更させていただいてよろしいでしょうか?

    「質問」のままですと適切に閲覧されない可能性がありますし、かといって回答済みチェックをつけるというのも何か違う気がしますし。

    このまま埋もれさせるには勿体無い情報だと思いましたので、ぜひご検討ください。

     

    それでは。

    2008年2月5日 4:31
  • 外池です。

     

    「コメント」に変更していただいて結構です。

    2008年2月5日 5:43
  • 外池さん、さっそくお返事ありがとうございます!

    「コメント」に投稿いたしましたのでご確認ください。

     

    このような、実際に製品を使用して起きた現象についての情報は非常に貴重です。

    今後ともぜひよろしくお願いします!

     

    2008年2月5日 9:55