私のコードでは、次のようにWindows 10 Professional上で動作するアプリケーションがクラッシュします。ShowInTaskbarが例外なく私のアプリケーションをクラッシュさせるのはなぜですか?
this.ShowInTaskbar = true;
これは2種類のマシンでテストされています。上記のコード行をtry/catchブロックに含めると、例外は表示されません。 Appdomain.UnhandledException
イベントに登録しても例外はありません。
System.Windows.Forms.ni.dll
にエラーが発生したとのイベントビューアにはEvent ID 1000
のアプリケーションエラーがありますが、それ以外は何も意味がありません。
この問題はWindows 10 Professionalでも動作する開発マシンでは再現できません。
フォームには、NotifyIcon
以外のコントロールはありません。
private void onFormResize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized) this.ShowInTaskbar = false;
}
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
try
{
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
私が最初WindowState
を変更し、その後、すべてがOKを流れるタスクバー上のフォームを表示する場合は、次の実験の後、私はこの問題は、次のコード行であることを考え出しました。また、のコマンド実行の順序に関係なく、OnFormResize
からコードを削除しても、アプリケーションがクラッシュすることはありません。
try/catchブロックはどのように見えますか?例外を飲み込んでいる可能性があります。 – Soviut
新しいWindowsフォームプロジェクトを作成してこの1つのものを追加するだけでも同じことが起こりますか?私は 'ShowInTaskbar'を変更するとウィンドウが再作成されると思います。おそらくあなたはウィンドウで何か安全でないことをやっているのでしょうか? 'ShowInTaskbar'をtrueに設定するとエラーを再現するサンプルコードを与えることができない限り、私たちは本当にあなたを助けることができません。 – Luaan
@Luaan私は詳細を提供する質問を編集しました。この問題は、言及された行を切り替えることによって克服されました。それはまだアプリがクラッシュした理由は私にはまだ悩ましい。 – Saloom