2013-09-10 4 views
3

Первоначально у меня был ящик с картинкой, который можно перемещать по форме пользователем из одного места в другое. Я обработал события для окна с картинками, и он отлично двигался.Динамическое управление событиями UserControl

Но теперь пользователь хочет отобразить текст под рисунком. Поэтому я решил создать настраиваемый элемент управления динамически и добавить этот блок изображения и элемент управления меткой внутри пользовательского элемента управления.

Я также установил свойства док-станции контроля в TOP и снизу. Теперь мой пользовательский контроль полностью покрыт субконтроллерами.

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

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

Исправьте меня, если вы не правы, и предоставите любое решение.

ответ

2

хорошо, событие мыши, как MouseDown и MouseUp происходит только тогда, когда мышь что-то делает с определенным элементом управления. лучшее предложение я могу дать вам, чтобы поймать каждое событие мыши в контрольной и вызвать метод на userControl

public UserControl1() 
    { 
    InitializeComponent(); 
    this.MouseDown += new MouseEventHandler(this.UserControl1_MouseDown); 
    this.comboBox1.MouseDown += new MouseEventHandler(this.comboBox1_MouseDown); 
    } 

    private void UserControl1_MouseClick(object sender, MouseEventArgs e) 
    { 
     UCMouseDown(); 
    } 

    private void UserControl1_MouseDown(object sender, MouseEventArgs e) 
    { 
     UCMouseDown(); 
    } 

    private void comboBox1_MouseDown(object sender, MouseEventArgs e) 
    { 
     UCMouseDown(); 
    } 

    private void UCMouseDown() 
    { 
     // Your code 
    } 
+1

я должен пересчитать координаты и положение элемента управления пользователя, соответственно. Но если я обрабатываю события для вспомогательных элементов управления, я получаю координаты относительно пользовательского элемента управления, а не по отношению к форме. В этом случае координаты не будут правильно рассчитаны. – Lokesh

+0

@Lokesh вы всегда можете взять координаты родительского контроля .... –

+1

Эй, это сработало. Я должен был попробовать это сам. Но для этого решения я должен обрабатывать события для обоих субконтроллеров. Что делать, если у меня есть более 10 элементов управления? Будем надеяться получить глобальный подход для этого. – Lokesh

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