Exemplo n.º 1
0
        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();
            }
        }