Для создания округленной формы без кнопок закрыть, свернуть и развернуть в C# можно использовать следующий подход:
- Создайте новую форму. Убедитесь, что свойство FormBorderStyle установлено на None, чтобы убрать стандартную границу окна.
- Добавьте на форму элемент управления, позволяющий перетаскивать форму. Например, можете использовать прозрачный панельный элемент, который будет покрывать всю форму или использовать обработчики событий нажатия мыши 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; } } }
- Чтобы сделать форму округленной, можно использовать свойство 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); // ... } }
- Для добавления минимизированной кнопки можно использовать простую панель с нажатием или изображение в формате 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.