- PR -

フォームの背景を透明にしてラインを引きたい

1
投稿者投稿内容
とし
会議室デビュー日: 2005/03/18
投稿数: 2
投稿日時: 2005-03-18 03:11
とし と申します。
#初書き込みです。よろしくお願いします。

VB.NETをはじめたばかりなのですが、
Formの背景を透明にするとラインを一瞬書いて消えてしまいます。
どうやれば作画できるのでしょうか?
コードは

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TransparencyKey = Color.White
Me.BackColor = Color.White
Dim g As System.Drawing.Graphics
g = Me.CreateGraphics
g.DrawLine(Pens.Red, 50, 25, 200, 350)
End Sub

とやったのですが。
教授お願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-03-18 04:34
こんばんは、じゃんぬねっと です。

Load 以外のイベントでやるとどうでしょうか?
_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-03-18 09:27
再描画していないから・・・
OSは画面上に書いた画像を保持してくれません。したがってウィンドウが隠れたり、何かの都合で再度出力しなおす必要が生じたときに、再描画するのはアプリケーションの責任で行います。画面を再描画する必要が生じたときにはPaintイベントが発生しますので、普通はPaintイベント内で描画します。
Loadイベントで描画しているのには何かわけがあるのでしょうか?VB6.0にはAutoRedrawプロパティをTrueにしておけば、ウィンドウへの描画内容を記憶して、自動的に再描画する機能が使えました。VB.NETではこの機能はありませんので、必要なら自分で仕組みを実装して下さい。
とし
会議室デビュー日: 2005/03/18
投稿数: 2
投稿日時: 2005-03-18 10:14
じゃんぬねっとさん、甕星さんご返答ありがとうございます。
Loadイベントで描画しているのは別に意味はありません。
そうですね、再描画しないといけないですね。
Paintイベントでうまくいきました。
そんな、基本的な事も分からないんで苦労しています。
くだらない質問で申し訳ありません。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)