作成したフォームにアイコンを追加しています。VS2012でプログラムを実行すると、タスクバーにアイコンが表示されます。ただし、プロジェクトを公開してインストールすると、アイコンはフォームの境界線に表示されますが、タスクバーには表示されません。私はここで何が間違っているのですか?
アイコンのサイズを変更してみました。
プロジェクトのプロパティに移動し、[アプリケーション]タブでアイコンを設定しましたか(混乱を避けるために、これはもちろんメインウィンドウで使用されるアイコンと同じである必要があります)?
フォームのプロパティに移動し、行を確認しましたか:Show icon = "True"?
ダイアログ/フォームアイコンは、適切なキーボードフォーカスを取得するまでタスクバーに表示されません。「適切な」焦点が何であるかはよくわかりませんが、ウィンドウを作成した人もそうではありませんでした。この問題は通常、最初のフォームのアクティブ化イベントがないことに伴います(そうそう、定期的に発生します)。これは、(Windowsアプリケーションで)すべてのフォームを非表示にしてから、次のフォームを表示するときに発生する可能性があります。
したがって、これは機能しません。
newForm.Show () ;
currentForm.Hide () ; //The newForm does not have the proper focus yet
// actualy in this moment (I think) your application loose focus beacuse there is no application window.
これでうまくいくかもしれません:
newForm.Shown += newForm_Shown ;
newForm.Show () ;
void newForm_Shown ( object sender , EventArgs e )
{
currentForm.Hide () ;
}
可能な限り、前のフォームを非表示にする前に次のフォームを表示し、新しいフォームの表示/アクティブ化イベント中に現在のフォームを非表示にする必要があります。私が知っている追加の作業は、フォームのアクティブ化を遅らせることです。いくつかのフォームアクティベーションメソッドでBeginInvokeのようなものを試すことができますが、これは一般的に悪い考えです。