タイトルは何の変哲もないものになってしまいました。
Windowsでは、ダイアログを出すとき、タスクバーに表示されるか・Alt+TABのリストに並ぶか・タスクマネージャに表示されるか、それぞれ制御できるようです。ところが.NET Frameworkには直接的に制御できるのはShowInTaskbarというプロパティぐらいしかなく、制御しづらい上にわかりにくいです。
そこでひたすらパターンを組み合わせてどのように表示されるかまとめてみました。とはいえ、総当たり表を見てもパターンが多すぎてわかりづらいので、逆引き形式で並べてみます。
// タスクバーに表示される条件
Form.ShowInTaskbar == true;
// 3D Flipに表示される条件
Form.ShowInTaskbar == true;
// Alt+Tabに表示される条件
Form.ShowInTaskBar == true ||
Form.FormBorderStyle != FormBorderStyle.FixedToolWindow && Form.FormBorderStyle != FormBorderStyle.SizableToolWindow;
// タスクマネージャに表示される条件
Form.FormBorderStyle != FormBorderStyle.FixedToolWindow && Form.FormBorderStyle != FormBorderStyle.SizableToolWindow;
だんだん、関係ないパラメータに依存してきていることがわかりました。
さらに、タスクバー・Alt+Tab・タスクマネージャにはダイアログアイコンが表示されます。表示されるアイコン自体は共通したものでしたが、アイコンの選択のされ方には微妙な違いがありました。
if( Form.ShowIcon == true && Form.Icon != null )
TheIcon = Form.Icon;
else if( Form.ShowIcon == true && Form.Icon == null && Form.FormBorderStyle != FormBorderStyle.FixedDialog )
TheIcon = Form.ParentForm.Icon;
else
TheIcon = null;
この式でTheIconに値が設定されないときはタスクバーなりタスクマネージャなりのデフォルトが使われる模様?
こうもややこしいと困りますね。
0 件のコメント:
コメントを投稿