I'm trying to extend the ListBox Control and allow the property BorderColor. It appears the OnPaint event isn't triggering. I roughly know how to draw a single border but of course it isn't appearing. I would like to apply the BorderColor and BorderStyle to make a border, I tried this but it has an error where DrawBorder accepts an argument of type ButtonBorderStyle but a ListBox has a property type of BorderStyle. So I'm very confused of how I can go about doing this.
Here is my current code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace ListBoxPlus
{
public class ListBoxPlus : ListBox
{
private Color borderColor = SystemColors.ControlDark;
public Color BorderColor
{
get
{
return this.borderColor;
}
set
{
this.borderColor = value;
this.Invalidate();
}
}
public ListBoxPlus() { }
protected override void OnPaint(PaintEventArgs e)
{
// breakpoint on the below line doesn't happen
base.OnPaint(e);
//ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, this.borderColor, this.BorderStyle);
Pen pen = new Pen(this.borderColor);
e.Graphics.DrawRectangle(pen, 0, 0, this.Width - 1, this.Height - 1);
}
}
}