tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル描画した線がFormが重なると消えてしまう
記事No1955
投稿日: 2005/08/03(Wed) 18:38
投稿者プル
[OSのVer]:Windows XP Home   [VBのVer]:VB.NET  
初めて質問させていただきます。
2つForm(Form1とForm2)を作成し、片方のForm(Form1)に線を描画させています。
線を描画したForm1に、Form2を重ねると描画したはずの線が消去されてしまいます。
素人な質問で恐縮ですが、どなたか解決策をご教授いただけませんでしょうか?
よろしくお願いいたします。

Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

        Dim frm2 As Form2 = New Form2

        Dim g As Graphics = Me.CreateGraphics
        Dim BPen As New Pen(Color.Black, 3)
        BPen.DashStyle = Drawing2D.DashStyle.Dash
        Dim pt1 As New Point(10, 30)
        Dim pt2 As New Point(170, 30)
        g.DrawLine(BPen, pt1, pt2)
        BPen.Dispose()
        g.Dispose()

        frm2.Show()

    End Sub

[ツリー表示へ]
タイトルRe: 描画した線がFormが重なると消えてしまう
記事No1956
投稿日: 2005/08/04(Thu) 10:21
投稿者
はじめまして星です
同じく初投稿です。

私はVB.NETについてはよくわからないのですが、
VC++では一度隠れてから再度表示するときに
再描画を行います。
このときにOnDraw関数を使用します。

.NETではいろいろな言語が共通でFrameworkを
使用していると思います。
VB.NETにもOnDraw関数、またはこれに近い関数が
あると思います(たぶん)

再描画について検索すると答えやヒントにつながるかも知れません。

[ツリー表示へ]
タイトルRe^2: 描画した線がFormが重なると消えてしまう
記事No1957
投稿日: 2005/08/04(Thu) 13:06
投稿者るしぇ
> VB.NETにもOnDraw関数、またはこれに近い関数が
> あると思います(たぶん)
>
> 再描画について検索すると答えやヒントにつながるかも知れません。
[Control.Paint イベント]
hhttp://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasspainttopic.asp

を利用するか Control.OnPaint メソッドをオーバーライドするか…あたりですね。

[ツリー表示へ]
タイトルRe^3: 描画した線がFormが重なると消えてしまう
記事No1958
投稿日: 2005/08/04(Thu) 17:01
投稿者プル
星さん、るしぇさん、ありがとうございます。
再描画で検索してみたところ、下記サイトが参考になりました。
下記サイトのサンプルでは、PictureBoxならうまく出来るようなので、
Formで実行させるよう検討したいと思います。
また、分からないことがあったら、質問したいと思います。
ご指導ありがとうございました。

hhttp://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard2.htm

[ツリー表示へ]