.NET TIPS DataGridコントロールを使用したフォームを常に最前面に表示するには?デジタルアドバンテージ2004/07/16 |
|
|
「TIPS:ウィンドウを常に最前面に表示するには?」では、フォームのTopMostプロパティの設定によるウィンドウの最前面(最上位)表示について示した。しかし、フォームにDataGridコントロールを配置している場合には、TopMostプロパティを設定していても常に最前面表示されなくなるという問題が発生する。これは.NET Frameworkクラス・ライブラリのバグであると思われるが、本稿ではこの問題を回避する方法について示す。
詳細は不明なのだが、この問題はDataGridコントロールにおける内部処理でフォームの最前面表示の状態を無効にしてしまっていることが原因のようである。このため、フォームのTopMostプロパティがtrueとなっているにもかかわらず、ウィンドウは通常表示となる。
この問題を回避するには、通常、プログラムの最初あるいはフォームのデザイン時でのみ行えばよいTopMostプロパティ設定を、DataGridコントロールが再描画されるたびに行うようにすればよい。具体的には、DataGridコントロールのPaintイベントのイベント・ハンドラでTopMostプロパティの再設定を行うようにする。この方法を実装したサンプル・プログラムを次に示す(ポイントとなるのは太字の部分のみである)。
|
|
DataGridコントロールを配置したフォームを常に最前面表示するC#のサンプル・プログラム(topmostdg.cs) | |
|
|
DataGridコントロールを配置したフォームを常に最前面表示するVB.NETのサンプル・プログラム(topmostdg.vb) | |
このサンプル・プログラムを実行すると、次のようなウィンドウが常に最前面に表示される。
DataGridコントロールを配置し、TopMostプロパティをtrueに設定したフォーム |
背後にあるアプリケーションをアクティブにしても、ウィンドウは隠れない。 |
なお、DataGridコントロールで表示しているデータについては、「TIPS:[ASP.NET]DataGridコントロールでデータセットを表示するには?」の「RSS情報をデータセットに読み込むには」で解説している。
カテゴリ:Windowsフォーム 処理対象:DataGridコントロール カテゴリ:Windowsフォーム 処理対象:ウィンドウ 使用ライブラリ:Formクラス(System.Windows.Forms名前空間) 関連TIPS:ウィンドウを常に最前面に表示するには? 関連TIPS:[ASP.NET]DataGridコントロールでデータセットを表示するには? |
「.NET TIPS」 |
Insider.NET フォーラム 新着記事
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|