• ベストアンサー

PictureBoxの機能

PictureBoxの機能について、お聞きしたいです。 PictureBoxに線や丸などを描くだけというものを作りたいです。 そこで、PictureBoxから、はみ出た部分(通常はみれなくなる部分)を、文章のようにスクロールなどを使って、表示可能にしたいです。 しかし、そのような機能が見つかりません。 どなたか、良い解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#187541
noname#187541
回答No.1

こんにちは。 スクロールバーを付けて画像を表示する http://dobon.net/vb/dotnet/graphics/scrollimage.html こちらを参考にどうぞ。

tyuioopp
質問者

お礼

回答ありがとうございます。 やりたいことは、画像を表示したいのではなく、ラインや点を打つという単純なものです。しかし、画像と異なり、はみ出した部分は表示されません。また、線や点を縮小・拡大したいのではなく、スクロールバーを利用して見れるようになりたいのです。 過去に、panelの中にpictureboxを入れて、pictureboxを拡大・縮小して、パネルのスクロールバーで、pictureboxをスクロールするというようなことが書いてありましたが、いまいち分かりません。 当方、全くの素人ですので、やりたいことをうまく表現できなくてすみません。

関連するQ&A

  • VB2005 PictureBox1に線を描きたい

    VB2005 のPictureBox1に1秒毎に読込んできた値を折れ線グラフにして表示したいのですが、その方法を参考書を見ても良く分かりません。また、そのPictureBox1の上に別のフォームとかを表示すると、PictureBox1と重なった部分の表示が消えてしまいます。この2つを解決したいのですが。どなたか解決する方法を知っている方教えて頂きたいのですが。よろしくお願いします。

  • C# PictureBox + panelでのスクロール

    C#でグラフを表示をさせるため、PictureBoxをPanelに貼り付け、AutoScroll=trueとしてPictureBoxに描画し、スクロール表示させることにしました。通常の表示を行う際には問題はないのですが、グラフを2倍や3倍に拡大表示を行おうとすると、PictureBox.Widthの設定可能な最大値が32768であるため、グラフの右端を表示することができません。表示させたいグラフの幅は30000dotなので、3倍表示する際には90000dot必要となります。 なにかいい解決方法がありましたらご教示をお願いします。

  • C# Picturebox 縮小・拡大時の表示方法

    下記のようなコードで、画像の拡大・縮小を行っています。 ただ画像の縮小時、PictureBox内の余分な部分について、(1)縮小前の 画像が残像のように表示されています。 また通常、画像の拡大・縮小前の画像では画像サイズがPictureBoxよりも大きいサイズの 場合、スクロールバーを表示するようにしています。 (2)でも、画像拡大時、スクロールバーが出るには出ているのですが、画像全てを 確認できません。 (1)、(2)の問題について、解決方法をご存知の方、お願いです、、、教えてください。。。 かなり、困ってます。。。。 Bitmap img = new Bitmap(pictureBox1.Image.Tag.ToString()); //PictureBox1のGraphicsオブジェクトの作成 Graphics g = pictureBox1.CreateGraphics(); //拡大・もしくは縮小 RectangleF rect = new RectangleF(0, 0, zoom * img.Width, zoom * img.Height); g.DrawImage(img, rect); //BitmapとGraphicsオブジェクトを破棄 img.Dispose(); g.Dispose();

  • PictureBoxの描画について

    VB2005を使用してPictureBoxに線を描きました。  Dim g As Graphics = PictureBox1.CreateGraphics()  g.DrawLine(p, X1, Y1, X2, Y2) 線は上手く描けたのですが、表示している画面(Form)を最小化して再度最大化すると、描いた線が消えてしまいます。FormをHideしてもう一度Showしても同じです。 この描画を消さないようにするには、どうすればよいでしょうか?

  • Pictureboxについて

    VB.netで開発を行っていますが、Pictureboxの描画処理で困っています。 プログラム、処理は以下のような感じです。 プログラム ・1つのPictureboxに対して、8台の機械の状態をそれぞれグラフ描画して、さらに全ての機械の実績値の合計を1つのグラフに  描画する。(計9つのグラフを描画します。) ・画面で任意の機械の絵を選択、スクロールで移動できます。(わかりづらいですが、ライン構想のようなものです。) ・スレッドで10秒間隔で毎回更新されます。(毎回描画しています。) 以上のような描画処理を行っておりますが、納品するパソコンがタッチパネルPC(windows xp embedded)なので、 スペックが低く、機械の絵を動かすと、描画が遅いと客から指摘を受けました。 機械の絵を動かした時、グラフを含め全ての描画を行っていることが原因だと思いますが、前回描画したグラフの内容を消去しないまま、 現在、動かしている機械の絵のみ描画するという方法はPictureboxで可能でしょうか。 (1つのPictureboxの特定の部分のみ描画したい。) また、何か他によい方法があれば教えて頂けないでしょうか。

  • PictureBoxに絵を書き込む

    輪郭を検出して合成写真に利用するプログラムを作っているのですが、輪郭が途切れてしまうことがあります。 そこで、PictureBoxのクリックした部分を認識して、輪郭を手動で補うというプログラムを作りたいのですが、どのようにしたらいいのでしょうか。 PictureBoxのMouseClickを利用するとドラッグで線を引いたりできず、MouseDownだとうまくいきません。 マルチスレッドというような感じにすれば良さそうですが、よくわかりません。 言語はC#です。 よろしくお願いします。

  • VBのPictureBoxで画像をドラッグして表示範囲を移動したい

    お世話になります。 VB.netのPictureBoxに画像を貼り付け表示しているのですが、 PictureBoxよりも大きい画像を表示した際にスクロールバーで表示範囲の移動はできるのですが、 これをスクロールバーではなくマウスをドラッグして表示範囲の移動をしたいのです。 どのようにすればできますか? よろしくお願いします。

  • PictureBoxの件で教えて頂きたいです VB.NET

    PictureBox1に画像を表示してあり、 その画像の一部分を四角形で指定して、 PictureBox2に表示するのですが、 例えばPictureBox1から切り取った画像が100*100の サイズだった場合に、PictureBox2に表示する際に PictureBox2のサイズを200*200などと 元の100*100より大きく設定して、 PictureBoxSizeMode.StretchImageを実行して、 画像を200*200で表示して、 それをそのサイズで保存したいのですが、 保存された画像をみると100*100になってしまっています。 表示されているサイズ(この場合200*200)で保存したいのですが、 方法を教えて頂けたら助かります。 保存は .Image.Save("c:\test.jpg", Imaging.ImageFormat.Jpeg) で保存しています。 宜しくお願い致します。

  • VB.NETでPictureBoxへの描画について

    VB.NETでPictureBoxへの描画について PictureBoxに画像を表示し、余白部分を含めて、マウスで描画できる処理を作成しているのですが、 どうも上手くいかない為、皆さんの知恵をお借りしたいと思い質問させて頂きました。 まず、880×560のPictureBoxを用意し、その中に、600×480の画像を埋め込んでいます。 そのPictureBoxの中で、画像以外の部分(余白)にもマウスで線等を書きたいのです。 画像のみに描く場合は上手くいくのですが、余白を含めると上手くいかなくなってしまい、 困っております。 プログラムの違いは以下の箇所のみです。2の場合は上手くいきます。 1.PictureBox全体に描画する(画像も含め) Dim g As Graphics = PictureBox1.CreateGraphics 2.画像のみに描画する Dim g As Graphics = Graphics.FromImage(PictureBox1.Image) ちなみに、マウスではなく、ボタンクリック時に描画した時は、1の場合でも上手くいきます。 お手数ですが、ご回答の程、よろしくお願いします。

  • pictureboxの表示について

    いつもお世話になります。 C#について質問です。VisualC#2008を使っています。 private PictureBox[] pictArray = new PictureBox[100]; private void Box_Load() { PictureBox pict; int nIdx = 0; while (nIdx < pictArray.Length) { pict = new PictureBox(); pictArray[nIdx] = pict; pict.Click += new EventHandler(pict_Click); nIdx++; } } のように、あるメソッドで配列にpictureboxの画像を代入(?)していく処理をしています。このメソッドを別のメソッドで呼び出し、 pictArray[1]に格納されているpicturebox pictArray[2]に格納されているpicturebox  …といった具合に、次々と表示させていきたいと考えています。しかし1つしかpictureboxが表示されません。具体的には以下のようなプログラムを組んでいるところです。 private void pict_Click(object sender, EventArgs e) { Box_Load(); kihon_pict.Location = new Point(10, yy); this.panel1.Controls.Add(pict); yy += 40; } 誰か解決策を教えていただけないでしょうか? よろしくお願いします。

専門家に質問してみよう