Смена внешнего вида кнопки при работе в Windows Forms является, пожалуй, одной из самой простой задачей.
Вопрос состоит в том, что бы при наведение указателя (курсора) мыши внешний вид кнопки изменялся на требуемый, а при покидании курсора кнопки возвращать прежние настройки.
Итак, имеется форма, на которой размещен контрол Button:

Как видим, кнопка почти незаметна на форме, так как к ней применили следующие настройки:
this.MyButton.FlatAppearance.BorderColor =
System.Drawing.Color.FromArgb(((int)(((byte)(224)))),
((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.MyButton.FlatAppearance.BorderSize = 0;
this.MyButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
Свойство BorderSize установлено в значение 0 пикселей.
Теперь, для достижения эффекта роловера следует подписать кнопку на два события:
this.MyButton.MouseLeave +=
new System.EventHandler(this.button4_MouseLeave);
this.MyButton.MouseHover +=
new System.EventHandler(this.button4_MouseHover);
И в каждом обработчике события будем просто играть с настройками внешнего вида контрола:
private void MyButton_MouseHover(object sender, EventArgs e)
{
this.MyButton.FlatStyle = FlatStyle.Flat;
this.MyButton.FlatAppearance.BorderSize = 1;
this.MyButton.FlatAppearance.BorderColor =
System.Drawing.Color.Crimson;
}
private void MyButton_MouseLeave(object sender, EventArgs e)
{
this.MyButton.FlatAppearance.BorderColor =
System.Drawing.Color.FromArgb(((int)(((byte)(224)))),
((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.MyButton.FlatAppearance.BorderSize = 0;
this.MyButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
}
Вот что мы получим при наведении на кнопку:

В общем то, как видим, все слишком просто для реализации подобных вещей. Понимаете, что такое поведение можно прикрутить практически к любому графическому контролу.