private void listBox1_DoubleClick(object sender, EventArgs e) { TreeNode treeNode = this.trVwTela.SelectedNode; if (treeNode.Tag != null) { //pnlCtrlTelaMFCadastro //pnlCtrlBotoesMFCadastro MasterForm masterForm = (treeNode.Tag as MasterForm); //this.GetType().GetMethods().FirstOrDefault() = masterForm.GetType().GetMethods().FirstOrDefault(); //this.GetType(). //BindingFlags flags = BindingFlags.Public | BindingFlags.Static; //MethodInfo minfo = masterForm.GetType().GetMethod("MyMethod", flags); //MasterForm ex = (MasterForm)Delegate.CreateDelegate( typeof(MasterForm), minfo); //MethodInfo clone = Reflect<ICloneable>.GetMethod(x => x.Clone()); //EventInfo evClick = this.GetType().GetEvents();// GetEvent("Click"); //evClick.AddEventHandler( masterForm.GetType().GetEvents() .OfType <EventInfo>() .ToList() .ForEach(f => { //var p = new Program(); //var eventInfo = f; //var methodInfo = f.GetType().GetMethod(f.Name); //Delegate handler = Delegate.CreateDelegate(eventInfo.EventHandlerType, this, methodInfo); //eventInfo.AddEventHandler(this, handler); //button1.Click += new EventHandler(button1_Click); // Get secret click event key //FieldInfo eventClick = typeof(Control).GetField("EventClick", BindingFlags.NonPublic | BindingFlags.Static); //object secret = eventClick.GetValue(null); //// Retrieve the click event //PropertyInfo eventsProp = typeof(Component).GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance); //EventHandlerList events = (EventHandlerList)eventsProp.GetValue(button1, null); //Delegate click = events[secret]; //// Remove it from button1, add it to button2 //events.RemoveHandler(secret, click); //events = (EventHandlerList)eventsProp.GetValue(button2, null); //events.AddHandler(secret, click); }); panel1.Controls.Clear(); panel1.Controls.AddRange(masterForm.Controls .OfType <PanelControl>() .ToArray()); //pnlCtrlTelaMFCadastro //(treeNode.Tag as MasterForm).Show(); } }