Ich habe mich einmal an einem eigen Button versucht, jedoch habe ich nach kurzer Zeit einem Problem in die Augen schauen müssen. Ich habe hier den Code von meinem Steuerelement in C#.
[Spoiler]
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace akButton
{
public partial class Button : UserControl
{
public Color _fcolor = Color.Blue;
public Color _bcolor = Color.Green;
public State _state
{
get { return _state; }
set
{
_state = value;
this.Refresh();
}
}
public Button()
{
InitializeComponent();
}
public enum State
{
Normal, Hover, MouseDown
}
protected override void OnPaint(PaintEventArgs e)
{
System.Drawing.Pen _pen = new Pen(_fcolor);
System.Drawing.Rectangle _rec = new Rectangle();
System.Drawing.Drawing2D.LinearGradientBrush _brush = null;
switch (_state)
{
case State.Normal:
_rec = new Rectangle(0, 0, this.Width - 1, this.Height - 1);
_brush = new System.Drawing.Drawing2D.LinearGradientBrush(_rec, _fcolor, _bcolor, 90, true);
break;
case State.Hover:
_rec = new Rectangle(0, 0, this.Width - 1, this.Height - 1);
_brush = new System.Drawing.Drawing2D.LinearGradientBrush(_rec, _fcolor, Color.Red, 90, true);
break;
}
e.Graphics.DrawRectangle(_pen, _rec);
e.Graphics.FillRectangle(_brush, _rec);
_pen.Dispose();
}
private void Button_MouseHover(object sender, EventArgs e)
{
_state = State.Hover;
this.Refresh();
}
}
}
Wenn ich versuche die .dll in ein visual studio projekt einzubinden, stürtzt mein VS 2012 sofort ab.
Ich würde mich über hilfreiche Antworten freuen.






