2014-02-03 4 views
1

Я создаю обработчик событий в Designer InitializeComponents() Проблема в том, что большинство обработчиков событий, которые я создаю вручную, всегда исчезают (удаляются) после перемещения других форм. Для примера, я создаю некоторые Dragform в PictureBox Как это:Обработчик событий удаляется автоматически

this.picLogo.MouseDown += picLogo_MouseDown; 
    this.picLogo.MouseMove += picLogo_MouseMove; 
    this.picLogo.MouseDown += picLogo_MouseDown; 

После я перехожу PictureBox (picLogo), этот код ушел. Im using Visual Studio 2012 Является ли эта проблема Visual Studio или я что-то упускаю? Большое спасибо ...

ответ

2

Нельзя добавлять события к дизайнеру вручную, если что-то изменится в форме визуальной студии, будут перезаписаны ваши изменения. Там в комментарии говорит вам это -

/// Required method for Designer support - do not modify 
/// the contents of this method with the code editor. 

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

+0

OMG, я перемещаю его в form_load() ... Я просто знаю, что обработчик событий может перемещаться за пределы конструктора. Большое спасибо ... –

+0

приветствуется :) – NDJ

+0

В коде .designer.cs нет ничего волшебного кода, за исключением того, что он выполняет между BeginInit и EndInit для элементов 'ISupportInitialize', но кроме этого вы можете сделать все возможное в этом файле в файле .cs. –

0

InitializeComponents метод имеет хороший комментарий:

#region Windows Form Designer generated code 

/// <summary> 
/// Required method for Designer support - do not modify 
/// the contents of this method with the code editor. 
/// </summary> 
private void InitializeComponent() 
{ 
    // ... 
} 

#endregion 

Этот комментарий ясно говорит, что вы не должны изменять содержимое этого метода с редактором кода. Зачем? Поскольку, поскольку имя региона указано, этот метод генерируется конструктором форм. Каждый раз, когда он будет сгенерирован, все ваши изменения вручную исчезнут. Этот метод повторно создается при изменении формы в дизайнере (например, перемещение некоторого элемента управления, например PictureBox).

Смежные вопросы