ピクチャーボックスのスクロール

解決


美保  2007-12-10 13:19:13  No: 99913  IP: 192.*.*.*

VBから制御を行い、その履歴を表示します。

Picture1.Print "○○を×する"
と言うようにすると、ピクチャーボックスに順に表示されていきますが、一番下までいってもそのままスクロールされていきません。スクロールバーを付けるなどしたいのですがどうしたらよいのでしょうか?

また、ピクチャーボックスの代わりにテキストボックスを使うと、改行すらされませんがなぜでしょう?
Text1.Text = Text1.Text & vbCrLf & "****"

もしかして、基本的なところで間違っています?

編集 削除
美保  2007-12-10 13:28:18  No: 99914  IP: 192.*.*.*

テキストボックスの改行は、MultiLineの設定で出来ました。

編集 削除
通ってみた  2007-12-10 13:49:45  No: 99915  IP: 192.*.*.*

PictureBoxは画像なので、スクロールしたいのであればそのイメージをゲームの画面をスクロールさせるのと同じように手動で動かす必要があります

PaintPictureやBitBlt、もしくはHeightを増やしていきMove(もしくはTop)を操作することになるかと思われます

最初の
>VBから制御を行い、その履歴を表示します。
というのが具体的にどんなことなのかわからないのでこれ以上はなんとも言えませんが

編集 削除
美保  2007-12-10 14:05:04  No: 99916  IP: 192.*.*.*

VBから制御を行うとは、コントローラに命令を送ることです。
「温度を○℃にしなさい」とか「モータを○rpmでまわしなさい」のように。
具体的には、

○時○分  温度を○℃に
○時○分  温度が設定値に達したので、ポンプを始動
○時○分  ポンプ停止

のように命令した内容を表示していきます。

>PaintPictureやBitBlt、もしくはHeightを増やしていきMove(もしくはTop)を操作することになるかと思われます

どういうことでしょうか?

編集 削除
美保  2007-12-10 14:12:05  No: 99917  IP: 192.*.*.*

もう少し具体的に書くと
例えば3行表示できるとして上記のように3行表示した後、次の行を書き込んでも最初に表示した3行しか見ることが出来ません。4行目を書き込んだら自動的に1行分スクロールするか、スクロールバーをつけてマウスでスクロールできるようにしたいと思ってます。

ちなみにテキストボックスにすると、やはり同じように3行しか見ることは出来ませんが、マウスでドラッグするとそれ以降の行も見ることが出来ます。

編集 削除
美保  2007-12-10 14:40:44  No: 99918  IP: 192.*.*.*

たびたびすみません。
テキストボックスの場合、SclollBarsで2を選ぶとスクロールバーが出来るのですが、これと同じことをピクチャーボックスで出来ないでしょうか?

テキストボックスは、書き換えができてしまうのでピクチャーボックスを使いたいのですが。。

編集 削除
魔界の仮面弁士  2007-12-10 15:16:12  No: 99919  IP: 192.*.*.*

PictureBox だと、スクロール機能は自力実装するしかありません。

かわりに、ListBox を使ってみては如何でしょうか。
これなら編集できませんし、スクロール機能の実装も不要です。

もし、縦スクロールだけではなく、横スクロールも必要なら、
TreeView コントロールを使えば OK かと。

編集 削除
魔界の仮面弁士  2007-12-10 15:33:28  No: 99920  IP: 192.*.*.*

> テキストボックスは、書き換えができてしまうのでピクチャーボックスを使いたいのですが。。
ちなみに TextBox の場合は、Locked プロパティを操作すれば、
ユーザーが内容を書き換えられないようにできます。

編集 削除
美保  2007-12-10 16:00:18  No: 99921  IP: 192.*.*.*

魔界の仮面弁士さま

ありがとうございました。
私もその後、いろいろ調べてみたらピクチャーボックスをスクロールできるようにする関数が売っていたりして、大変そうだと言うことが分かりました。TextBoxのLockedをTrueにすることでやりたいことができました。どうもお世話になりました。また何かあったときはよろしくお願いします。

編集 削除