C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: コントロールがディスプレイに表示されているかどうかの判定方法


(過去ログ 135 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■79633 / inTopicNo.1)  コントロールがディスプレイに表示されているかどうかの判定方法
  
□投稿者/ ズートピア (1回)-(2016/04/24(Sun) 13:13:27)

分類:[.NET 全般] 

いつも参考にさせていただいております

画像ビューアーでサムネイルが現在ディスプレイ上に表示されているかどうかを
判定をする方法を調べています

サムネイルそのものはlabelを継承した自作のコントロールとなっています
多量の写真を縮小処理するときに現在ディスプレイ上にあるものを優先して処理したい

isvisible 的なものがあるのではないかと調べていますが
これぞというものが見当たりません
よろしくお願いいたします
引用返信 編集キー/
■79634 / inTopicNo.2)  Re[1]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ WebSurfer (896回)-(2016/04/24(Sun) 13:34:38)
No79633 (ズートピア さん) に返信

何を作っているのでしょうか?(Windows Forms? WPF? ASP.NET Web Forms? その他?)

開発環境(OS, .NET, Visual Studio のバージョンなど)の情報は書いていただけないのでしょうか?
引用返信 編集キー/
■79635 / inTopicNo.3)  Re[2]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ ズートピア (2回)-(2016/04/24(Sun) 14:08:47)
No79634 (WebSurfer さん) に返信
> ■No79633 (ズートピア さん) に返信
>
> 何を作っているのでしょうか?(Windows Forms? WPF? ASP.NET Web Forms? その他?)
>
> 開発環境(OS, .NET, Visual Studio のバージョンなど)の情報は書いていただけないのでしょうか?

すみません
VB2005でプログラムしています
OSはWIN7です
ローカルのパソコンでのみ使用する画像ビューアを作っています



引用返信 編集キー/
■79636 / inTopicNo.4)  Re[3]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ WebSurfer (897回)-(2016/04/24(Sun) 15:02:47)
No79635 (ズートピア さん) に返信

何を作っているのか(Windows Forms? WPF? ASP.NET Web Forms? その他?)が
依然として不明なのですが・・・

> サムネイルそのものはlabelを継承した自作のコントロールとなっています

その label というのは System.Windows.Forms.Label ですか? そうだとし
て、Label にどうやってサムネイル画像(?)を表示するのか等謎が多いですが、
それを聞いていると話が長くなりそうですのでとりあえず置いといて・・・

System.Windows.Forms.Label コントロールには Visible プロパティというも
のがあります。それは使えませんか?

Control.Visible プロパティ
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.visible%28v=vs.110%29.aspx
引用返信 編集キー/
■79638 / inTopicNo.5)  Re[1]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ Azulean (634回)-(2016/04/24(Sun) 20:24:33)
No79633 (ズートピア さん) に返信
> 画像ビューアーでサムネイルが現在ディスプレイ上に表示されているかどうかを
> 判定をする方法を調べています

一言でいえば「作り方による」です。
今の時点では複数の可能性が考えられ、望まぬ形で発散するだけだと思います。

・Windows Forms なのか?
・「表示されているか?」に対して、「表示されていない」とはどういう状態なのか?(何らかのコントロールでスクロールしている?単に重なっている?Visible で制御している?)

どういうものを作っているか、より具体的に示した方がコメントを得やすいでしょう。
Label の継承クラスだとして、それをどのようなコンテナで扱っているのか、大量にあった場合はどのように表示させる作りなのかといったあたりが肝でしょう。
引用返信 編集キー/
■79639 / inTopicNo.6)  Re[2]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ ズートピア (3回)-(2016/04/24(Sun) 23:14:55)
ご返信ありがとうございます

(Windows Forms? WPF? ASP.NET Web Forms? その他?)
用語の意味がわからないのですがおそらくWindows Formsです

サムネイルはラベルに縮小画像を載せています
スクロールで隠れているサムネイルがあります
サムネイルのvisibleは常にtrueで扱います

今ディスプレイに表示されているかどうかを判定したいのです


引用返信 編集キー/
■79640 / inTopicNo.7)  Re[3]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ daive (110回)-(2016/04/25(Mon) 07:55:13)
>(Windows Forms? WPF? ASP.NET Web Forms? その他?)
>用語の意味がわからないのですがおそらくWindows Formsです
VB.NET 20xx であれば、MyProject ⇒アプリケーションの種類で、確認可能です。
C# 20xx であれば、Properties ⇒ 出力の種類で、確認可能です。
これらの画面の、フレームワーク情報と、アプリケーションの種類等は、
質問する際の重要情報です。
⇒統合開発環境(IDE)の使い方を学習していないのであれば、
 まずは、各ウィンドの意味、IDEの使い方、デバッグ機能の使い方を学習してください。
 特に、デバッグ機能(デバッガ)の使い方を良く学習してください。
 ⇒最低限の基礎学習が終わった方、慣れている方は、コード書いたりしながら、学習を進めます。
  ⇒メニューの全ての機能を覚える必要は有りませんが、
   最低限知っていないと、話の下地(共通基盤)が出来ていないという範囲はあります。
  今回の件では無いですが、
  IDE、デバッガが、正しく使えないから質問しないと判らない、質問しても判らない。
  使えていれば、質問しなくても判るのにという事も、どこの質問サイトでも見受けられます。
’
Scroll の見せ方には、例えば、
1.Scroll している様に見せる。
  〜の様に見えれば、操作している方にとっては、
  実際にコントロールが有っても無くても、どっちでも良い。
  例えば、10×10の該当コントロールに、
  Scrollバーを実装して、、、
2.Panel コントロール等Scroll が実装されている物を使い、
  該当コントロールを、必要数分だけ実装して、
  表示 範囲内かどうか判定して、、、
  ⇒こちらの方が、リソース他を多く消費しがちです。
   100個では動くけど、1000個では?10000個では?
   実用的な範囲は?
   それ、RAM2GB のWindows TABで動きますか?みたいな事になると、面倒ですよね?

引用返信 編集キー/
■79643 / inTopicNo.8)  Re[3]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ WebSurfer (898回)-(2016/04/25(Mon) 10:59:57)
No79639 (ズートピア さん) に返信

> (Windows Forms? WPF? ASP.NET Web Forms? その他?)
> 用語の意味がわからないのですがおそらくWindows Formsです

何を作っているかもわからないという状況ですと、自分にはお手伝いでき
ることはなさそうです。すみませんが他の方の回答をお待ちください。



#文章でやりとりする掲示板ですので、掲示板に書いてあることが回答者
 にとっては全てです。なので、掲示板に書いてあること以外は回答者は
 何も知り得ないということを十分認識した上で、質問者さんの状況やや
 りたいことを具体的かつ明確に伝えていただかないと、的を得た回答を
 するのは難しいことはご理解いただきたいと思います。

#もし、仕事とか研修の課題とかでしたら face-to-face でやり取りでき
 る上司、先輩、先生などに助言を求めるべきだと思います。
引用返信 編集キー/
■79646 / inTopicNo.9)  Re[4]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ フィール (3回)-(2016/04/25(Mon) 12:43:46)
2016/04/25(Mon) 14:38:47 編集(投稿者)

そのコントロール群が表示されているかどうかということは、
そのコントロール群はスクロールによって表示/非表示が変わるということでしょうか?
また、それらコントロール群はFormかPanelのようなコンテナ上にあり、
コントロール群の数が多ければ、親にスクロールバーが表示されている、
(あるいは親のスクロールバーは出ず、親からはみ出たものは表示されない)
ということでしょうか?

それであれば、各コントロールのBoundsが親のBoundsの範囲内かどうかで
判断できます。
引用返信 編集キー/
■79653 / inTopicNo.10)  Re[3]: コントロールがディスプレイに表示されているかどうかの判定方法
□投稿者/ Azulean (635回)-(2016/04/25(Mon) 22:13:01)
No79639 (ズートピア さん) に返信
> 今ディスプレイに表示されているかどうかを判定したいのです

スクロールで見える位置にいる≠ディスプレイで表示されている という関係ですが、「スクロールで見える位置にいる」でよいのなら AutoScrollPosition と ClientSize/ClientRectangle で計算できるんじゃないでしょうか。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -