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

Для создания округленной формы без кнопок закрыть, свернуть и развернуть в C# можно использовать следующий подход:

1. Создайте новую форму. Убедитесь, что свойство FormBorderStyle установлено на None, чтобы убрать стандартную границу окна.

2. Добавьте на форму элемент управления, позволяющий перетаскивать форму. Например, можете использовать прозрачный панельный элемент, который будет покрывать всю форму или использовать обработчики событий нажатия мыши MouseDown, MouseUp и MouseMove для перемещения формы.

Пример кода для панели:

public partial class RoundedForm : Form
{
    private bool isMouseDown = false;
    private Point mouseOffset;

    public RoundedForm()
    {
        InitializeComponent();
        SetStyle(ControlStyles.ResizeRedraw, true);
    }

    private void panel1_MouseDown(object sender, MouseEventArgs e)
    {
        isMouseDown = true;
        mouseOffset = new Point(-e.X, -e.Y);
    }

    private void panel1_MouseUp(object sender, MouseEventArgs e)
    {
        isMouseDown = false;
    }

    private void panel1_MouseMove(object sender, MouseEventArgs e)
    {
        if (isMouseDown)
        {
            Point mousePos = Control.MousePosition;
            mousePos.Offset(mouseOffset.X, mouseOffset.Y);
            Location = mousePos;
        }
    }
}

3. Чтобы сделать форму округленной, можно использовать свойство Region и класс GraphicsPath. Вам нужно будет создать объект GraphicsPath, добавить в него прямоугольник со сглаженными углами и присвоить его в качестве значения для свойства Region формы.

Пример кода для округленной формы:

public partial class RoundedForm : Form
{
    public RoundedForm()
    {
        InitializeComponent();
        SetStyle(ControlStyles.ResizeRedraw, true);

        // Задаем округлый регион формы
        GraphicsPath path = new GraphicsPath();
        path.AddEllipse(new Rectangle(0, 0, Width, Height));
        Region = new Region(path);
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        // Дополнительная настройка визуального представления формы
        base.OnPaint(e);
        // ...
    }
}

4. Для добавления минимизированной кнопки можно использовать простую панель с нажатием или изображение в формате PNG, представляющее значок для кнопки сворачивания.

public partial class RoundedForm : Form
{
    public RoundedForm()
    {
        InitializeComponent();
        SetStyle(ControlStyles.ResizeRedraw, true);

        // Задаем округлый регион формы
        GraphicsPath path = new GraphicsPath();
        path.AddEllipse(new Rectangle(0, 0, Width, Height));
        Region = new Region(path);

        // Создаем и настраиваем кнопку сворачивания
        Button minimizeButton = new Button();
        minimizeButton.Size = new Size(16, 16);
        minimizeButton.FlatStyle = FlatStyle.Flat;
        minimizeButton.FlatAppearance.BorderSize = 0;
        minimizeButton.BackColor = Color.Transparent;
        
        // Выравнивание кнопки сворачивания в правом верхнем углу формы
        minimizeButton.Location = new Point(ClientSize.Width - minimizeButton.Width - 10, 10);
        minimizeButton.BackgroundImage = Image.FromFile("minimize.png");
        minimizeButton.BackgroundImageLayout = ImageLayout.Zoom;

        // Прикрепляем обработчик события клика на кнопку сворачивания
        minimizeButton.Click += (sender, e) => WindowState = FormWindowState.Minimized;

        // Добавляем кнопку сворачивания на форму
        Controls.Add(minimizeButton);
    }
}

Приложите изображение "minimize.png" в папке проекта для кнопки сворачивания.

Таким образом, вы создадите округленную форму без кнопок закрыть, свернуть и развернуть. Вы также можете настроить визуальное представление формы, добавив различные элементы управления и настройки в методе OnPaint.