VB.net 2008 Передача Click от Монгоэлелентного пользовательс

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

lublupospat
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 29.10.2009 (Чт) 16:26

VB.net 2008 Передача Click от Монгоэлелентного пользовательс

Сообщение lublupospat » 29.10.2009 (Чт) 16:35

Доброе время суток всем

Помогите с проблемкой
Есть пользовательский ImageBox из пространства имен ImageBox элемент управления состаящий из несколький label графических элементов RectangleShape и PictureBox
Он имеет определенные передаваемые и принимаемые параметры

Теперь при добавлении его на форму
Код: Выделить всё
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim ImageList As New ImageBox.ImageBox
    ImageList.Location = New Point(10, 200 * i)
    ImageList.ImageLocation = "http://s48.radikal.ru/i120/0905/24/96e274b360fd.jpg"
    ImageList.SizeMode = PictureBoxSizeMode.Zoom
    ImageList.id = i
    AddHandler ImageList.Click, AddressOf ImageList_Click
    Me.Controls.Add(ImageList)
    i = i + 1
End Sub


Код: Выделить всё
Private Sub ImageList_Click(ByVal sender As ImageBox.ImageBox, ByVal e As System.EventArgs)
    MsgBox(sender.id)
End Sub


После такого действия при нажатии на элемент управления появляется MsgBox с id элемента
но только когда непосредственно нажимаешь на подложку элемента управления
Как сделать чтоб событие Click передавалость с любого элемента этого компонента

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: VB.net 2008 Передача Click от Монгоэлелентного пользовательс

Сообщение Денис » 29.10.2009 (Чт) 16:53

lublupospat писал(а):Как сделать чтоб событие Click передавалость с любого элемента этого компонента


Можно внутри контрола завести событие Click на каждый внутренний элемент (после Handles через запятую указать все дочерние контролы) и в этом событии генерировать событие Click их общего родителя.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: VB.net 2008 Передача Click от Монгоэлелентного пользовательс

Сообщение Nord777 » 29.10.2009 (Чт) 17:22

Денис, всё правильно, но ты упустил из виду, что он не сможет сгенерить событие унаследованного контрола.
А вот попросить унаследованный контрол, чтобы он сам вызвал своё событие - можно.
Будет как-то так:
Код: Выделить всё
Public Class ImageBox

   Private Sub ImageBox_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      AddHandler PictureBox1.MouseClick, AddressOf MClick
      AddHandler PictureBox2.MouseClick, AddressOf MClick
   End Sub

   Private Sub MClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
      Me.OnMouseClick(e)
   End Sub

End Class
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

lublupospat
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 29.10.2009 (Чт) 16:26

Re: VB.net 2008 Передача Click от Монгоэлелентного пользовательс

Сообщение lublupospat » 29.10.2009 (Чт) 17:49

Nord777 Спрасибо Все работает только
Код: Выделить всё
Me.OnMouseClick(e)

поменял на
Код: Выделить всё
Me.OnClick(e)


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

    TopList