DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

表示色を反転して線を引く

VB6では、ピクチャボックスのDrawModeプロパティをvbInvert(6)としてから線を描画することにより表示色を反転して出力できました。.NETでは、ControlPaintクラスDrawReversibleLineメソッドを使うことで、表示色を反転して線を引くことができます。また、同じくControlPaintクラスのDrawReversibleFrameメソッドで枠を、FillReversibleRectangleメソッドで塗りつぶされた四角を描くことができます。

なおこれらのメソッドは画面に描画し、指定する座標も画面座標です。よって、例えばPictureBoxコントロールでの座標で指定したいのであれば、PointToScreenメソッドなどでクライアント座標から画面座標に変換しなければなりません。

次の例では、ピクチャボックス「PictureBox1」の座標(20, 10)-(200, 100)に反転した線を引いています。

VB.NET
コードを隠すコードを選択
'PictureBox1の(20, 10)-(200, 100)に反転した線を引く
'PictureBox1上の座標を画面座標に変換する
Dim startPoint As Point = PictureBox1.PointToScreen(New Point(20, 10))
Dim endPoint As Point = PictureBox1.PointToScreen(New Point(200, 100))
'黒で反転した線を引く
ControlPaint.DrawReversibleLine(startPoint, endPoint, Color.Black)
C#
コードを隠すコードを選択
//PictureBox1の(20, 10)-(200, 100)に反転した線を引く
//PictureBox1上の座標を画面座標に変換する
Point startPoint = PictureBox1.PointToScreen(new Point(20, 10));
Point endPoint = PictureBox1.PointToScreen(new Point(200, 100));
//黒で反転した線を引く
ControlPaint.DrawReversibleLine(startPoint, endPoint, Color.Black);

これらのメソッドについては、「コントロールを描画する」でも説明しています。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。