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

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

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

Re[2]: コントロールが現在画面上に表示されているかを判別


(過去ログ 50 を表示中)

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

■27658 / inTopicNo.1)  コントロールが現在画面上に表示されているかを判別
  
□投稿者/ インビジブル (3回)-(2008/11/11(Tue) 21:20:50)

分類:[.NET 全般] 

お世話になります

パネル内のコントロールが現在画面上に表示されているかを判別する方法はありますか
下記コントロールにはあるようなのですが、通常のコントロールでは見つかりません
(TreeNodeでの .isvisible )
(DataGridViewのセルの DataGridViewCell.Displayed )

引用返信 編集キー/
■27665 / inTopicNo.2)  Re[1]: コントロールが現在画面上に表示されているかを判別
□投稿者/ Jitta (536回)-(2008/11/11(Tue) 22:39:52)
Jitta さんの Web サイト
No27658 (インビジブル さん) に返信
> お世話になります
>
> パネル内のコントロールが現在画面上に表示されているかを判別する方法はありますか
> 下記コントロールにはあるようなのですが、通常のコントロールでは見つかりません
> (TreeNodeでの .isvisible )
> (DataGridViewのセルの DataGridViewCell.Displayed )
>

システム情報から、画面の広さを貰う。(1)
目的のコントロールのクライアント座標を拾う。(2)
2を、ワールド座標に変換する。(3)
3が、1の範囲にあるか、判定する。
引用返信 編集キー/
■27666 / inTopicNo.3)  Re[1]: コントロールが現在画面上に表示されているかを判別
□投稿者/ よねKEN (19回)-(2008/11/11(Tue) 23:09:00)
2008/11/11(Tue) 23:11:44 編集(投稿者)

> パネル内のコントロールが現在画面上に表示されているかを判別する方法はありますか

パネルのサイズとその中のコントロールの左上の座標とサイズから自分で判断しましょう。

> 下記コントロールにはあるようなのですが、通常のコントロールでは見つかりません

TreeViewに対するTreeNodeやDataGridViewに対するDataGridViewCellは、
どちらもそれ専用のオブジェクトだから、そういうプロパティがありますが、
通常のコントロールとパネルには特にそういう固有の関係がありませんので、
プロパティか何かで一発で判断する方法はたぶん用意されていません。

引用返信 編集キー/
■27671 / inTopicNo.4)  Re[2]: コントロールが現在画面上に表示されているかを判別
□投稿者/ まどか (590回)-(2008/11/12(Wed) 03:45:28)
パネル内限定では、Panel.AutoScroll〜プロパティ群とPanel.ClientRectangleとコントロールの座標で判断。
かつスクリーン上であれば、既出のようにコントロールのスクリーン座標を求めてスクリーンサイズと比較。
といったところでしょう。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -