WinForms, C# Расположение различных элементов управления в RunningMode, чем в Editor - PullRequest
0 голосов
/ 23 января 2020

Я скопировал существующую (и рабочую) форму, заменил изображение и выполнил некоторые настройки в коде (но на самом деле это не касается Control-Location-Related). Моя форма в редакторе выглядит так (как должно)

Редактор: Editor

У меня есть Panel01, которая включает в себя каждый элемент управления. Внутри Panel01 находится MenuStrip И Panel02. Панель 02 включает все элементы управления: - текстовые поля - флажки - даты - и изображение (отмеченное розовым цветом) 998x1426 пикселей

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

Вот как это выглядит:

Запуск программы

Running Program

Я также пытался удалить изображение, но элементы управления остаются в своих неправильных местоположениях. Control.Location.Y одинаков как в редакторе, так и во время работы.

Как исправить ошибку? В чем именно моя ошибка? Я действительно хочу, чтобы форма в запущенной программе выглядела так, как в редакторе.

Я также прилагаю некоторые (надеюсь) скриншоты.

Если кто-нибудь может мне помочь, я был бы очень благодарен (я ' я уже схожу с ума)…

Вот еще несколько деталей:

Определение Panel01

        // 
        // Panel01
        // 
        this.Panel01.Controls.Add(this.menuStrip1);
        this.Panel01.Controls.Add(this.Panel02);
        this.Panel01.Location = new System.Drawing.Point(0, 0);
        this.Panel01.Name = "Panel01";
        this.Panel01.Size = new System.Drawing.Size(1019, 1066);
        this.Panel01.TabIndex = 1;

Определение Panel02

        // 
        // Panel02
        // 
        this.Panel02.AllowDrop = true;
        this.Panel02.AutoScroll = true;
        this.Panel02.Controls.Add(this.Stempel01);
        this.Panel02.Controls.Add(this.Datum01);
        this.Panel02.Controls.Add(this.Picture1);
        this.Panel02.Location = new System.Drawing.Point(0, 25);
        this.Panel02.Margin = new System.Windows.Forms.Padding(4);
        this.Panel02.Name = "Panel02";
        this.Panel02.Size = new System.Drawing.Size(1016, 1036);
        this.Panel02.TabIndex = 0;

Здесь Дизайнер добавляет каждый элемент управления (больше, чем показано на скриншоте).

Ответы [ 2 ]

0 голосов
/ 31 января 2020

решено № 2

Я выяснил кое-что еще, что также ведет к плохому поведению:

Мой FormLoad устанавливает ActiveControl для элемента управления, который во время загрузка из поля зрения (окна). После загрузки у меня есть функция, которая изменяет размеры всех прокручиваемых панелей. Если я установлю ActiveControl на что-то, что находится внутри Panel все время, все работает хорошо.

0 голосов
/ 24 января 2020

решено

Похоже, действительно была проблема с моими элементами управления, которые не были подключены к панелям. Еще раз спасибо всем, кто прокомментировал.

Я удалил каждый элемент управления и заменил их один за другим (и перестраивал программу после каждого элемента управления). После этого все было там, где и должно быть.

(Scrollpanels действительно плохие, и я понял :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...