webdevqa.jp.net

ラベルの境界線の色を変更しようとしています

私はVB、VS2008、winformsで働いています。作成するラベルがいくつかあり、BorderStyle = FixedSingleを使用しています。

この境界線の色を変更する方法はありますか?デフォルトでは常に黒になっています。

25
Stewbob

カスタムコントロールを作成したくない場合は、次の方法を試すことができます。

レーベルのペイントイベントに接続します。

void label1_Paint(object sender, PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, label1.DisplayRectangle, Color.Blue, ButtonBorderStyle.Solid);
}

here by Andrej Tozon から取得

33
orandov

Robin.ellisとorandovのソリューションを組み合わせて、自分に最適な結果を得ました。 Labelオブジェクトを継承し、OnPaintイベントを上書きするカスタムコントロールを作成しました。

Public Class nomLabel
   Inherits Label

  Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
      MyBase.OnPaint(e)

      ControlPaint.DrawBorder(e.Graphics, e.ClipRectangle, myColor, ButtonBorderStyle.Solid)
   End Sub

End Class

助けてくれてありがとう!

12
Stewbob

私もこの問題に遭遇し、回避策を使用することになりました。

パネルでラップされたラベルで構成されるカスタムコントロールを作成します。

次に、パネルを使用して境界線を作成し、その色を好きなように変更できます。

とにかく、アプリケーションのすべてのコントロールをラップすることをお勧めします(少し時間がかかりますが)。カスタムプロパティが必要であることがわかった場合、またはそのタイプのすべてのコントロールに変更した場合は、基本コントロールを変更するだけで、アプリ全体が変更されます。

8
rie819