سلام
من میخواهم یک شی بسازم که از Panel ارث بری کرده باشد و وقتی که یکی از اشیاء زیر مجموعه (Child)آن را انتخاب کنیم یک قطعه کد اجرا شود.
مشکل اینجاست که نمیدانم چگونه Select شدن اشیاء فرزند این Panel را تشخیص دهم.
ممنون میشم اگه راهنمایی کنید
Public Class MyPanel
Inherits Panel
End Class
Public Event ChildGotFocus(ByVal e As ControlEventArgs)
Protected Overrides Sub OnControlAdded(ByVal e As ControlEventArgs)
MyBase.OnControlAdded(e)
AddHandler e.Control.GotFocus, AddressOf Child_GotFocus
End Sub
Protected Overrides Sub OnControlRemoved(ByVal e As ControlEventArgs)
RemoveHandler e.Control.GotFocus, AddressOf Child_GotFocus
MyBase.OnControlRemoved(e)
End Sub
Private Sub Child_GotFocus(ByVal sender As Object, ByVal e As EventArgs)
RaiseEvent ChildGotFocus(New ControlEventArgs(sender))
End Sub
Public Class MyPanel
Inherits Panel
Public Event ChildGotFocus(ByVal e As ControlEventArgs)
Protected Overrides Sub OnControlAdded(ByVal e As ControlEventArgs)
MyBase.OnControlAdded(e)
AddHandler e.Control.GotFocus, AddressOf Child_GotFocus
End Sub
Protected Overrides Sub OnControlRemoved(ByVal e As ControlEventArgs)
RemoveHandler e.Control.GotFocus, AddressOf Child_GotFocus
MyBase.OnControlRemoved(e)
End Sub
Private Sub Child_GotFocus(ByVal sender As Object, ByVal e As EventArgs)
RaiseEvent ChildGotFocus(New ControlEventArgs(sender))
End Sub
End Class
Public Class Form1
Private Sub MyPanel1_ChildGotFocus(ByVal e As System.Windows.Forms.ControlEventArgs) Handles MyPanel1.ChildGotFocus
Me.Text = e.Control.Name
End Sub
End Class
بازهم ممنون از جوابهایتان
حالا اگر بخواهیم در حالت Design کد مورد نظر اجرا شود چه باید کرد؟![]()
Protected Overrides Sub OnControlAdded(ByVal e As ControlEventArgs)
MyBase.OnControlAdded(e)
AddHandler e.Control.GotFocus, AddressOf Child_GotFocus
Dim rnd As New Random()
Me.BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256))
End Sub