|
.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」 |
TechTargetジャパン
Insider.NET フォーラム 新着記事
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
@IT 新着記事
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
お勧め求人情報
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
ソリューションFLASH



