Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
TabPageに線を描画する方法について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=31017#CommentId86405
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
とくま
 (社会人)
投稿日時
2025/5/26 09:19:30
他のウィンドウ(メモ帳とか)をフォームの上に重ねた後に取り除いても消えると思います。
ディスプレイ上は2次元の話なので、ウィンドウを重ねると下に描画されていたフォームは上書きされて存在しなくなります。
取り除いたときに、もう一度、描画しなおす必要があります。ディスプレイ上では、常に再描画が行われていることを覚えてください。
フォーム自体は、描画する処理が裏の見えない処理に書かれていますが、後からプログラムした描画処理も再描画する
必要があります。この手っ取り早いやり方が Paint イベントです。つまり初心者は、画面に描画する処理で
Paint イベント以外は使ったらNGだと思って下さい。
> Private Sub SenKaki_1()
> Me.CreateGraphics.DrawLine(penR, 90, 170, 420, 170)
> End Sub
これもNG。
Paint イベントの引数(e.Graphics)を使いまわす場合は、裏の処理が後始末してくれるので問題ありませんが、
自分で CreateGraphics するとリソース(メモリ)の確保が行われます。
その場合、解放処理まで自分で書く必要があります。画像系のプログラムはメモリを食うので、
繰り返すと目に見える形でメモリリークが起こる場合があります。
https://dobon.net/vb/dotnet/graphics/drawline.html
>'リソースを解放する
>g.Dispose()
の処理が必要です。
penR も使いまわすのは良いですが、フォームの Dispose イベントで解放するのを覚えたほうが良い場面となります。
penR.Dispose() を呼ぶ必要があります。