PictureBoxを二重貼りしてスクロールするには

解決


やおきな  2005-02-26 16:42:06  No: 119960  IP: [192.*.*.*]

PictureBoxを二重貼りしてスクロールする方法が

「フォームにスクロールバーをつけるには?」の回答
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200410/04100027.txt

にあるのですが、PictureBoxを二重貼りにする方法が分かりません。
どなたか具体的な方法を教えていただけないでしょうか。

編集 削除
さるべーじ  2005-02-26 17:10:45  No: 119961  IP: [192.*.*.*]

1つ目。
Formの中にPictureBoxを大きめに配置します。
2つ目。
1つ目で配置したPictureBoxをFormのように考え、その中にPictureBoxを配置します。

確認。
2つ目のPictureBoxを1つ目からはみ出すような位置まで移動させてみて、はみ出した部分が隠れるようであれば成功。
ほんとにはみ出した場合は、PictureBoxではなくFormに配置されてしまっているので2つ目のPictureBoxを削除してやり直し。

となります。

VB.NETならとりあえず配置した後で1つ目の中に移動させることもできますが、VB6のお話ですよね?であれば、配置時の一発勝負です。

編集 削除
ガッ  2005-02-26 17:26:18  No: 119962  IP: [192.*.*.*]

VB6ならコピペで出来た悪寒・・

編集 削除
Say  2005-02-26 17:35:15  No: 119963  IP: [192.*.*.*]

>ほんとにはみ出した場合は、PictureBoxではなくFormに配置されてしまっているので2つ目のPictureBoxを削除してやり直し。
>VB6のお話ですよね?であれば、配置時の一発勝負です。
いや、そんなにシビアな話では・・・
Form上にPicture1,Picture2を配置し、
Picture2を選択して[Ctrl+X]を押し(Picture2が消える)、
Picture1を選択して[Ctrl+V]を押せば
Picture1の中にPicture2が配置されます。

上記操作が面倒ならForm上への配置だけしておいて、
Form_Loadあたりでコードでコンテナをセットしても可。

Set Picture2.Container = Picture1

「Form上への配置」もコード化できますが、別の話になるので割愛。

編集 削除
さるべーじ  2005-02-26 17:39:15  No: 119964  IP: [192.*.*.*]

> VB6ならコピペで出来た悪寒・・
> いや、そんなにシビアな話では・・・

あ、そぅか。その手もありましたね。
今まで律儀に一発貼付を繰り返していた私…(T−T)

編集 削除
やおきな  2005-02-26 18:28:56  No: 119965  IP: [192.*.*.*]

すみません  VB.NETです。
VB6と同じではないですよね。
よろしくお願いします。

編集 削除
さるべーじ  2005-02-26 19:13:38  No: 119966  IP: [192.*.*.*]

> すみません  VB.NETです。

いたたたた(T−T)

http://www.microsoft.com/japan/msdn/library/ja/vbcon/html/vxconchangestopictureboxcontrolinvisualbasicnet.asp

「Visual Basic 6.0 の PictureBox コントロールはコンテナ コントロールでしたが、Visual Basic .NET の PictureBox コントロールはコンテナ コントロールではありません。」

といぅことですので、外側のPictureBoxをPanelに読み替えればOKではないでしょうか。

# 私自身はPanelを使っていたので…VB.NETでPictureBoxがコンテナにならないことを知りませんでしたよorz

編集 削除
やおきな  2005-02-28 19:48:56  No: 119967  IP: [192.*.*.*]

さるべーじ さん、ありがとう。

パネルできれいにスクロールされるのを確認しました。
PictureBoxの二重貼りより分かり易くなったのでは。
これできれいなプログラムが作れそうです。

編集 削除