You can create a Class and inherit from Control.
At that point, you'll already have most of the functionality that you want.
Next, you'll handle the drawing of the control in the OnPaint method.

There's going to be many things to consider. Like changing the appearance of the Button for various conditions.