
グラフィック描画ですが、引数を持たないサブルーチンプロシージャ(固定的な
目盛り等)は、PictureBox_paint(***イベントプロシージャ内に記述すればグラフィック描画ができます(e.Graphicsでグラフィックスオブジェクトを取得できる為)が、
X、Y座標を引数としたサブルーチンプロシージャを作り、その中でLineDraw(*****で描画させたい場合サブルーチンプロシージャ内に dim g As Graphics=pictureBox1.CreateGraphics()
でグラフィックオブジェクトを生成しても
描画できないのですがどのようにすれば解決できるでしょうか(イメージがわかり難いかもしれませんのでサンプルを書きました)
よろしくお願いします
(1)private sub pictureBox1_paint(Byval sender as Object, Byval e as
system******
e.Graphics.DrawLine(****** (これは描画できる)
End Sub
(2)private sub zahyou() ' 座標を生成するサブルーチンプロシージャ
dim i as integer
for i=0 to 10
hyouji( i , i*5 )
End Sub
private sub hyouji( x as integer, y as integer) ’直線を引くサブルーチンプロシージャ
dim g As Graphics=pictureBox1.CreateGraphics()
g.DrawLine(***,x,y**** (これは描画できない)

No.3ベストアンサー
- 回答日時:
返信遅れまして申し訳御座いません
フォーム=frmGurafu
ピクチャ=Picture1
開発環境の設定にもよりますが、コードのイメージは以下のようになります
│
田 Windows フォーム デザイナで生成されたコード
│
│
│Private g As Graphics
│
日Private Sub frmGurafu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
│ PictureBox1.Image = New Bitmap(PictureBox1.Width, PictureBox1.Height)
│ g = Graphics.FromImage(PictureBox1.Image)
│'別のSub
│ sakugatate() '縦を描く
│ sakugayoko() '横を描く
│End Sub
│
日Sub sakugatate()
│ Dim i As Integer
│ For i = 1 To 5
│ g.DrawLine(Pens.Pink, i * 20, 0, i * 20, 100)
│ Next
│End Sub
│
日Sub sakugayoko()
│ Dim i As Integer
│ For i = 1 To 5
│ g.DrawLine(Pens.Pink, 0, i * 20, 100, i * 20)
│ Next
│End Sub
これで、どうでしょうか?

No.2
- 回答日時:
'フォームにPictureBox1とButton1を貼り付けて
'フォーム内の共通obj宣言
Private g As Graphics
'フォームロードに
g = PictureBox1.CreateGraphics
'ボタンクリック
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
kaku()
End Sub
'こんなSubを作成して
Private Sub kaku()
Dim I As Integer
For I = 1 To 40
keisen(I * 10)
Next
End Sub
'繰り返される部分
Private Sub keisen(ByVal Px As Integer)
g.DrawLine(Pens.Pink, Px, 0, Px, PictureBox1.Height)
End Sub
グラフの罫線はこんな処理で描きます
このままですと、ウインドウの裏に隠れると消えてしまいますので
346706番の方法とあわせれば、書けると思います。
スイマセン↓これは大間違いでした
Private g As Graphics = Graphics.FromImage(PictureBox1.Image)
この回答への補足
すみません、前回教えていただいた方法でグラフィックが書けたのですが、
dim g as graphics=・・・・
PictureBox1.Image・・・・
を複数のSubプロシージャに書くと、先のプロシージャで表示されていたグラフィックが消えてしまいます。
例えば、座標を書くプロシージャとグラフデータを書くプロシージャと分けていた
場合、座標プロシージャを呼んでグラフデータプロシージャを呼ぶと座標が消えます。宣言の場所方法が違うのでしょうか
よろしくお願い致します
この度は、大変お世話になりました。
前回教えていただいた方法と組み合わせてやってみます
有難うございました。
ちなみに346706番とは、前回のお返事分でしょうか?

No.1
- 回答日時:
dim g As ~
をSubの外に宣言してみては如何でしょうか?
Private g As Graphics = Graphics.FromImage(PictureBox1.Image)
Private p As New Pen(Color.Black)
private sub hyouji(***)
g.DrawLine(p, x1, y1, x2, y2)
End sub
…はずしていたら、すいません
この回答への補足
お返事遅れましてすみませんでした
回答有難うございます。
dim g as をプロシージャの外に出すとコンパイルエラーになってしまいました
あとPrivate g As Graphics = Graphics.FromImage(PictureBox1.Image)
のpraivate部分が引っかかってしまうのです。
記述方法がちがっていましたら、御指摘ください
よろしくお願い致します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでphotoshopのレイヤーの...
-
プログラミング言語 R グラフ
-
ListBoxで改行したい
-
C# DrawImage 物理サイズでな...
-
VB2010のChartで、何本もの線を...
-
C#で壁の当たり判定と自キャラ...
-
ピクチャボックスに描画した画...
-
vb6のTEXTBOX
-
DrawLineで引いた線が消えてし...
-
Microsoft Formsの「個人情報や...
-
VBA シートのボタン名を変更し...
-
Excelにて、ユーザーフォームで...
-
'ckbl' コントロールは作成され...
-
実行時エラー 438になった時の...
-
VBA(エクセル)で自動的にボタン...
-
EXCELでactivexコントロールを...
-
Form_Load と Form_Activate の...
-
worksheetFunctionクラスのVloo...
-
ExcelVBAでListViewが使用できない
-
ウォッチ式の文字数制限について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
C# DrawImage 物理サイズでな...
-
PowerPoint の VBA
-
給紙トレイをダイアログを使わ...
-
Excel VBA:コントロールボタン...
-
C#を用いて描画する四角形の角...
-
ビットマップに描画をしてピク...
-
エクセルのレーダーチャート 0...
-
C++/CLIを用いて画像をクリップ...
-
MFCでのコンボボックスについて
-
ピクチャーボックスでの折線グ...
-
円の頂点の求め方を知りたいです。
-
Word 描画オブジェクトを削除...
-
VB.netで図形描画ができません^^;
-
Visual C++ MaskedTextBoxの右...
-
フォームに描画して表示をスク...
-
DrawLineで引いた線が消えてし...
-
C#でPictureBoxが二重に表示される
-
VC;;6.0のMFCで線を簡単に引け...
おすすめ情報