グラフィック描画ですが、引数を持たないサブルーチンプロシージャ(固定的な
目盛り等)は、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.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部分が引っかかってしまうのです。
記述方法がちがっていましたら、御指摘ください
よろしくお願い致します
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.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
これで、どうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:07
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) VBAプログラミング 2 2022/11/27 12:13
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
scilabでのグラフ描画時の軸設定
-
立方体をくるくる回転させるプ...
-
ビットマップに描画をしてピク...
-
win32api複数のタイマーを同時...
-
C#で壁の当たり判定と自キャラ...
-
画面に絵を出す方法
-
VC++2010 MFC EDIT に格子
-
VB2010にて、プロットエリア...
-
実行時エラー 438になった時の...
-
VBA シートのボタン名を変更し...
-
worksheetFunctionクラスのVloo...
-
ExcelVBA Range クラスの Page...
-
ADODB.Streamを使用してUTF-8を...
-
フォームの再読み込み
-
eclipseのデバッグ中に変数の値...
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォーム上に現在日時...
-
なぜこんな初歩的なVBAのIf文で...
-
Access VBA でデータペーストを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
Word 描画オブジェクトを削除...
-
C#を用いて描画する四角形の角...
-
ビットマップに描画をしてピク...
-
PowerPoint の VBA
-
給紙トレイをダイアログを使わ...
-
win32api複数のタイマーを同時...
-
画面に絵を出す方法
-
MFCでのコンボボックスについて
-
.NETのPictureBoxでウインドウ...
-
scilabでのグラフ描画時の軸設定
-
Excel VBA:コントロールボタン...
-
VC;;6.0のMFCで線を簡単に引け...
-
花火のアルゴリズム
-
VB.NETでグラフィックを描くと...
-
水平線の描画
-
Excel 2007で、フリーフォーム描画
-
C# DrawImage 物理サイズでな...
-
円の頂点の求め方を知りたいです。
おすすめ情報