26

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

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

4

3 に答える 3

35

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

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

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

Andrej Tozon撮影_

于 2009-06-12T18:41:54.110 に答える
12

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

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

于 2009-06-12T19:36:05.463 に答える
8

私もこの問題に遭遇し、最終的に回避策を使用しました。

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

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

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

于 2009-06-12T17:14:28.407 に答える