@TomYol

Почему при разной диагонали экрана, элемент меняет своё расположение?

На форме создаю GroupBox, в нём несколько элементов. У меня на мониторе (1080p) всё отображается как надо. Скинул знакомому, у него ноут (тоже 1080р). Там группбокс появляется в неправильной точке, хотя разрешение то же самое, у ноута только диагональ меньше. Сам группбокс созадю так:

//groupbox
            DescriptBox.AutoSize = true;
            DescriptBox.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
            DescriptBox.BackColor = SystemColors.InactiveCaption;
            DescriptBox.Location = new Point(0, 801);
            DescriptBox.Name = "DescriptBox";
            DescriptBox.Size = new Size(280, 220);
            DescriptBox.Parent = pictureBox1;
            DescriptBox.BringToFront();
            pictureBox1.Controls.Add(DescriptBox);
 
            //textbox1
            CountryName.BackColor = SystemColors.InactiveCaption;
            CountryName.BorderStyle = BorderStyle.None;
            CountryName.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Bold, GraphicsUnit.Point, ((byte)(0)));
            CountryName.Location = new Point(6, 19);
            CountryName.Multiline = true;
            CountryName.Name = "CountryName";
            CountryName.Size = new Size(147, 65);
            DescriptBox.Controls.Add(CountryName);
 
            //picturebox
            FlagIcon.Location = new Point(144, 19);
            FlagIcon.Name = "FlagIcon";
            FlagIcon.Size = new Size(123, 68);
            DescriptBox.Controls.Add(FlagIcon);
 
            //texbox2
            CountryDescript.BackColor = SystemColors.InactiveCaption;
            CountryDescript.BorderStyle = BorderStyle.None;
            CountryDescript.Font = new Font("Microsoft YaHei", 9F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(204)));
            CountryDescript.Location = new Point(0, 93);
            CountryDescript.Multiline = true;
            CountryDescript.Name = "CountryDescript";
            CountryDescript.ScrollBars = ScrollBars.Vertical;
            CountryDescript.Size = new Size(273, 126);
            DescriptBox.Controls.Add(CountryDescript);

Как должно отображаться (группокс в левом нижнем углу):
5fb7c8538a8a3526974942.jpeg

Как отображается ( группокс в левом нижнем углу):
5fb7c882e7077154458267.jpeg
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Shporsoft
Скажу сразу - я работал на C#, но с Windows Forms не очень так и долго. Я думаю вам как раз подумать про адаптивный дизайн программы.
Вот обьяснение, скажу на примере веб дизайна:
Имеется телефон, у него разрешение 1024*600 пикселей. И возьмём ноут, у него тоже разрешение 1024*600 пикселей. Но сайт на ноутбуке выглядит совсем по другому, а в телефоне совсем по другому.
В случае Windows Forms я видел как к таким элементам как у вас применяют своиство anchor.
Размер экрана имеет значение.
Ответ написан
Комментировать
@itgood
все просто в winforms используется контейнер канвас идет привязка к координатам
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы