- 日時: 2009/12/27 12:51
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[フォーム][基本コード][] * * キーワード:ウィンドウ,画面,描画・画像,ピクチャーボックス,グラフィック, * ***********************************************************************************
元質問:フォームにスクロールバー - あじ 2004/05/25-07:40 No.9042
テキストボックスなどのスクロールバーはわかるんですが、フォームにスクロールバーをつけることができません。 どのようにすればできるのでしょうか
---------------------------------------------------------------------- Re: フォームにスクロールバー - Say 2004/05/25-10:21 No.9044 ----------------------------------------------------------------------
定番の質問だったりしますが・・・。
スクロールバー(HとV)コントロールをFormの下端(H)と右端(V)に配置してください。
スクロールバー以外の部分をぴったり隠すようにPictureBoxを配置してください。 PicTureBoxのなかに巨大PictureBoxを配置してください。 巨大PictureBoxの中にコントロール類を配置してください。 スクロールバーのValueの変化に連動させて巨大PictureBoxのLeftとTopを設定すればできあがり。
------------------------------------------------------------------------------ 定番の割には、コードが見当たらなかったりして、下記に動作確認用のコードを 投稿しておきます。(サイズは適当に作っておりますので修正願います。)
--- by 花ちゃん --- ------------------------------------------------------------------------------- Option Explicit
Private Sub Form_Load() Me.Move 0, 0, 15360, 11000 HScroll1.Move 0, Me.Height - 820, Me.Width - 480, 285 VScroll1.Move Me.Width - 435, 0, 285, Me.Height - 800 '水色の部分 この上にPicture2を表示して移動させる Picture1.Move 0, 0, Me.Width - 380, Me.Height - 780 'これが大きなフォームの変わりになります。黄色の部分 Picture2.Move 0, 0, 33000, 25000 HScroll1.Max = 30720 - Me.Width HScroll1.Min = 0 HScroll1.LargeChange = 200 HScroll1.SmallChange = 200 VScroll1.Min = 0 VScroll1.Max = 22000 - Me.Height VScroll1.LargeChange = 200 VScroll1.SmallChange = 200 End Sub
Private Sub Form_Resize() HScroll1.Max = 30720 - Me.Width VScroll1.Max = 22000 - Me.Height HScroll1.Move 0, Me.Height - 800, Me.Width - 480, 285 VScroll1.Move Me.Width - 400, 0, 285, Me.Height - 800 Picture1.Move 0, 0, Me.Width - 400, Me.Height - 800 End Sub
Private Sub HScroll1_Change() Picture2.Move -HScroll1.Value, Picture2.Top, Picture2.Width, Picture2.Height End Sub Private Sub HScroll1_Scroll() Picture2.Move -HScroll1.Value, Picture2.Top, Picture2.Width, Picture2.Height End Sub
Private Sub VScroll1_Change() Picture2.Move Picture2.Left, -VScroll1.Value, Picture2.Width, Picture2.Height End Sub
Private Sub VScroll1_Scroll() Picture2.Move Picture2.Left, -VScroll1.Value, Picture2.Width, Picture2.Height End Sub
--------------------------------------------------------------- (画像をクリックすると元のサイズで見られます。) Form には、下図のように配置して下さい。 実行図
|