Не удается развернуть форму, когда я использовал закругленные границы в форме Windows C # - PullRequest
0 голосов
/ 07 марта 2019

У меня есть форма с закругленными границами по кодам ниже:

[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
    int nLeftRect,     // x-coordinate of upper-left corner
    int nTopRect,      // y-coordinate of upper-left corner
    int nRightRect,    // x-coordinate of lower-right corner
    int nBottomRect,   // y-coordinate of lower-right corner
    int nWidthEllipse, // height of ellipse
    int nHeightEllipse // width of ellipse
);

public Form1()
{
    InitializeComponent();
    Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 30, 30));
}

Но проблема в том, что когда я максимизирую форму, она не максимизируется правильно. Это максимизирует, как это: Изображение Пожалуйста, помогите мне ...

1 Ответ

0 голосов
/ 09 марта 2019

Я нашел ответ ... Я должен очистить все границы, которые я установил ранее, как это:

private void btnMaximize_Click(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Maximized)
            {
                this.WindowState = FormWindowState.Normal;
                btnMaximize.Image = Properties.Resources.maximize_Black;
                Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 30, 30));
            }
            else
            {
                this.WindowState = FormWindowState.Maximized;;
                btnMaximize.Image = Properties.Resources.maximize_Black_copy;
                Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 0, 0));
            }
        }

Спасибо всем друзьям, которые хотят помочь мне.

...