2

を使用してLinkLabelおり、境界線を赤色に設定したいと考えています。BorderStyletoFixedSingle とto を赤に設定しましForeColorたが、テキストだけが赤で、境界線はまだ黒です。

コントロールに対して同じことを行うLabelと、境界線とテキストが赤くなります。何か提案はありますか?

4

2 に答える 2

3

を設定しBorderStyleNone、自分で描画します。

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);
}
于 2013-03-27T22:04:15.537 に答える
0

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; }
}
于 2013-03-27T22:23:23.967 に答える