Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【C#】フォームの最前面表示が効かない場合がある?とりあえずの対処法。

More than 1 year has passed since last update.

最前面ウィンドウ大好きでいろんなプログラム言語で書いてみていたんですが、C#のフォームでプロパティにTopMost = true;と指定しただけだと、なぜか時々、最前面表示が効かないことがあるんです。

んで「プロパティにTopMost = true;と指定」ってどういうことか考えてみると、フォームのコンストラクタ実行時にフォーム.Designer.cs の InitializeComponent() を実行してその中で指定してる、ってことなんですよね。

このタイミングでは早すぎてフォームを完全に表示しきる前にプロパティ指定をして結果的に空振りすることがあるのではないか…と妄想してみました。

なのでもう少し遅いタイミングでこの指定を実行してはどうかと。

と思って色々調べてて見つけたページ
Windows フォームのイベントの順序 | Microsoft Docs

これを見て、そうか、Form_Shownというイベントがあるのかー、と思ってイベントハンドラを追加してその中で指定するようにしたら、最前面表示が効かない不具合は、ほぼ起こらなくなりました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away