Как создать кнопку любой формы?

Приветствую всех, конечно мало кто уже использует winform однако, студенты и начинающие обычно начинают именно с него. И классическая форма кнопок печалит. Рассмотрим пример, для этого мы создадим кнопку на форме и используем код ниже:

//добавляем необходимое простанство имен:
using System.Drawing.Drawing2D;
void OvalForm(Button btn)
{
   GraphicsPath gp = new GraphicsPath();
   Graphics g = CreateGraphics();
 
   //Создаем новый прямоуголник с размерами кнопки
   Rectangle rect = btn.ClientRectangle;
 
   //уменьшаем размеры прямоуголника
   rect.Inflate(-3, -3);
 
   //создаем эллипс
   gp.AddEllipse(rect);
   btn.Region = new Region(gp);
 
   //рисуем рамку для овальной кнопки
   g.DrawEllipse(new Pen(Color.Black, 1),
   btn.Left + 1, btn.Top + 1,
   btn.Width - 3, btn.Height - 3);
 
   //высвобождаем память
   g.Dispose();
}

Теперь создадим обработчик события для кнопки и поместим в него следующий код:

private void button1_Click(object sender, EventArgs e)
{
   OvalForm(button1);
}

Если нажать на кнопку мы увидим овальную форму, поместив в него изображение она будет выглядеть намного лучше 🙂

 

 

Обновлено: 25.10.2018 — 12:45

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.