投稿者 永字  (社会人) 投稿日時 2008/10/3 12:41:57
先日は、丁寧なご回答をありがとうございました。
ご提示されたサンプルを応用して、何とか望んだような動作をするようになりました。
しかし、更にもう一つ問題が発生してしまいまして…。

マップをクリックすることで座標を指定し、画像を描画する事には成功していると思います。
本体ウィンドウとは別フォームでマップフォームを作り、そちらに描画しています。

・本体側(マップをクリックすることで呼び出される)
    Sub mapRedraw()
        Dim i As Integer
        myImages = New List(Of Bitmap)
        points = New List(Of Point)
        For i = 0 To 19
            If Not Me.tokenListC.Items(i) Is "-" Then
                '画像名、画像パス、座標をタブで分解する
                Dim args() As String = Me.tokenListC.Items(i).Split(CChar(vbTab))
                'マップフォームに値を渡す
                  Dim XX As Integer = args(2) - 16
                Dim YY As Integer = args(3) - 16
                myImages.Add(New Bitmap(args(1)))
                points.Add(New Point(XX, YY))
            End If
        Next
        My.Forms.mapForm.Invalidate()
    End Sub

・マップフォーム側
    'マップを再描画する
    Private Sub mapBox_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles mapBox.Paint
        Dim i As Integer
        '現在セットされている座標にそれぞれの画像を描画
        For i = 0 To Form1.myImages.Count - 1
            Form1.myImages(i).MakeTransparent(Color.White)
            e.Graphics.DrawImage(Form1.myImages(i), Form1.points(i))
        Next
    End Sub

マップをクリックし、画像を描画した後、画面を一度他ウィンドウの後ろなどに隠せば、Paintイベントが走って描画を行ってくれるのですが、本体側の
My.Forms.mapForm.Invalidate()
が動作してくれず、Paintイベントが起こらず、自動での再描画を行ってくれません。
RefreshやUpdateでも同様でした。

本体側から、子ウィンドウの自動再描画を行う事は出来るのでしょうか?

度々で申し訳御座いませんが、御指導をお願い致します。