- PR -

ユーザーコントロールで外枠を描画するには?VB2008

1
投稿者投稿内容
そーし
会議室デビュー日: 2009/03/10
投稿数: 1
投稿日時: 2009-03-11 00:25
はじめまして。よろしくお願いします。

スケジューラーを作っています。
予定を表すアイテムを作るため、ドラッグ可能な独自描画のユーザーコントロールを作りましたが、
選択時に外枠を付ける方法がわからず、困っています。

選択された場合、ちょうどVB2008のPowerPackにあるRectangleShapeのような
コントロールの外側に「選択を表す点線を描きたい」のですが、

以下のようにすると、ユーザーコントロールの範囲外なので当然ながら描画されません。
Dim g As Graphics = Me.CreateGraphics
g.DrawRectangle(Pens.Black, New Rectangle(-1, -1, Me.Width + 1, Me.Height + 1))

そこで考えたのが、
ユーザーコントロールの描画部分をズラして(上下左右1px分だけ普段は描かないようにする)、選択された際に、
Dim g As Graphics = Me.CreateGraphics
g.DrawRectangle(Pens.Black, New Rectangle(0, 0, Me.Width , Me.Height ))
とすることも考えたのですが、
これではコントロールの位置が常に1pxだけズレてしまうのでNGです。
(このコントロールをスケジューラーのアイテム(予定)として使うので、ズレると開始時刻までズレてしまう。)

質問は
1.ユーザーコントロールの外側に選択を表す点線を描画する方法があればご教授ください。
jiji
会議室デビュー日: 2009/03/10
投稿数: 16
投稿日時: 2009-03-17 15:04
こんにちは
ご自身で仰っているとおり
>ユーザーコントロールの外側
つまりパネルやフォームに書けばいいのでは?
1

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