を使用してLinkLabel
おり、境界線を赤色に設定したいと考えています。BorderStyle
toFixedSingle
とto を赤に設定しましForeColor
たが、テキストだけが赤で、境界線はまだ黒です。
コントロールに対して同じことを行うLabel
と、境界線とテキストが赤くなります。何か提案はありますか?
を設定しBorderStyle
てNone
、自分で描画します。
private void linkLabel1_Paint(object sender, PaintEventArgs e)
{
if (linkLabel1.ForeColor == Color.Red)
ControlPaint.DrawBorder(e.Graphics, linkLabel1.DisplayRectangle, linkLabel1.ForeColor, ButtonBorderStyle.Solid);
else
ControlPaint.DrawBorder(e.Graphics, linkLabel1.DisplayRectangle, Color.Black, ButtonBorderStyle.Solid);
}
LinkLabels には実際には境界線の色のプロパティはありませんが、OnPaint イベントにフックして独自の境界線を描画できます。windows-tech.infoでそれを行う方法を示すコードがあります。
そこで言及されているように、LinkLabel コントロールを再利用する場合は、新しいコントロールを派生させることができます。その時点で、「CustomBorderColor」プロパティを追加して使用することもできます。設定されていない色は空として表示されるので、デフォルトで透明になっているものを使用します。このような:
using System.Drawing.Color;
private Color m_CustomBorderColor = Color.Transparent;
public Color CustomBorderColor
{
get { return m_CustomBorderColor; }
set { m_CustomBorderColor = value; }
}