tagCANDY CGI VBレスキュー(花ちゃん) - フォームにスクロールバーを付けてスクロールする(VB6.0) - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
フォームにスクロールバーを付けてスクロールする(VB6.0)
元に戻る スレッド一覧へ 記事閲覧
このページ内の検索ができます。(AND 検索や OR 検索のような複数のキーワードによる検索はできません。)

フォームにスクロールバーを付けてスクロールする(VB6.0) [No.83の個別表示]
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
日時: 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 には、下図のように配置して下さい。     実行図
メンテ

Page: 1 |

 投稿フォーム               スレッド一覧へ
題  名 スレッドをトップへソート
名  前
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存   
スレッド一覧へ