したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

VB2005 グラフについて

3こじら:2010/08/16(月) 16:49:42
Me.Disposeもトライしてみましたが
Me.Closeを同じエラーでした。
一部軸の詳細を省いていますが、プログラム
示します。
エラーは以下です
Form2を一度クローズして再度Form1のボタンをクリックした時

「破棄されたオブジェクトにアクセスできません。
 オブジェクト名 'Form2' です。」

となります。すみません、何か思い当たるアドバイス
ありませんでしょうか。

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
F2.Show()
End Sub
End Class

Public Class Form2
Private X As Integer
Private PX As Integer
Private PY As Integer
Private oldX As Integer
Private oldY As Integer

Private Sub Form2_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
Application.DoEvents()
Display()
End Sub

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
'F2.Dispose()
F2.Close()
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
F2 = Me
sample = 10
HDIV = 1
Application.DoEvents()
Display()
End Sub


Private Sub Display()
Dim I As Integer
Dim Div As Single
Dim w As Integer = ClientRectangle.Width - 20
Dim h As Integer = ClientRectangle.Height - 20
Dim g As Graphics = CreateGraphics()
g.TranslateTransform(20, h / 2) '座標原点設定
g.ScaleTransform(1, -1)

g.DrawLine(Pens.Blue, 0, 0, w, 0)
g.DrawLine(Pens.Blue, 0, -h \ 2, 0, h \ 2)

For X = 0 To Index - 1
PY = mData(X)
If (X = 0) Then
PX = 0
oldX = PX
oldY = mData(0)
Else
PX = PX + HDIV
g.DrawLine(Pens.Red, oldX, oldY, PX, PY)
oldX = PX
oldY = PY
End If
Next
End Sub
End Class

Module Module1
Public F1 As New Form1
Public F2 As New Form2
Public sample As Integer
Public HDIV As Integer

Public Index As Integer = 40
Public mData() = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 17, 18, 19, 20, _
19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}
End Module


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板