Visual Studio C # формирует недостающие компоненты - PullRequest
1 голос
/ 26 ноября 2009

Мой партнер по лаборатории и я работаем над школьным проектом в Visual Studio 2008 на C #. Он написал мне последнюю версию проекта. Когда я открываю его, некоторые, но не все формы, которые я создал ранее, теперь пропускают все компоненты, которые были добавлены к ним. Однако когда я запускаю проект, компоненты там и работают. Все в форме, кроме границы, «скрыто».

Есть идеи, как получить доступ к отсутствующим компонентам и редактировать формы? ShowAllForms активен.

Похоже, что-то похожее на код ниже был добавлен в код .cs для каждой формы (но не мной). Я читал в другом месте в Интернете, что этот код может быть автоматически сгенерирован Visual Studios. Может ли это быть проблемой? Если да, то почему Visual Studios добавляет его в мой код?

private void InitializeComponent()
        {
            this.SuspendLayout();
            // 
            // VideoPoker
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.ClientSize = new System.Drawing.Size(804, 549);
            this.Name = "VideoPoker";
            this.Load += new System.EventHandler(this.VideoPoker_Load_1);
            this.ResumeLayout(false);

        }

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 июня 2013

Visual Studio обычно добавляет метод InitializeComponent в .Designer.cs, и при добавлении новых элементов управления этот метод изменяется для добавления новых элементов управления. Вот что вы можете попробовать после создания резервной копии существующих файлов

  1. Проверьте, содержит ли InitializeComponent код для всех элементов управления в вашей форме.

  2. Очистить существующий код и перекомпилировать проект.

  3. В обозревателе решений убедитесь, что файл designer.cs отображается непосредственно под вашими .cs, а не под какими-либо другими файлами (такими как .resx и т. Д.). Например, если ваш файл конструктора был случайно добавлен в файл .resx, вы можете попробовать удалить файл конструктора из вашего проекта (после создания резервной копии), а затем добавить его снова. Он должен быть добавлен в .cs

0 голосов
/ 26 ноября 2009

Да, метод InitializeComponent () автоматически добавляется Visual Studio.

Как следует из названия, каждое свойство самой формы инициализируется, и то же самое относится к любому объекту, который вы помещаете в форму в конструкторе. Все, что вы редактируете в конструкторе, в конце концов попадает в этот раздел кода - автоматически.

Вы никогда не должны редактировать этот код вручную.

Что касается отсутствующих элементов управления, я предполагаю, что по какой-то причине был удален код, который помещает их в ControlCollection формы, доступ к которой осуществляется через свойство Form.Controls.

Вы должны проверить, содержит ли код в методе InitializeComponent () строки, подобные

this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);

для каждого элемента управления, который должен быть в форме.

Эти строки должны быть далеко внизу, ближе к концу метода.

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