نمایش نام فرم های برنامه در TreeView

بنا به درخواست یکی از دوستان و کاربران عزیز با نام کاربری ghasem110deh این پست رو گذاشتم. ایشون میخوان که نام فرم های موجود در برنامه شون رو در داخل treeview نمایش بدن وبا کلیک بر روی نام هر فرم فعالش کنن. یک برنامه ویندوزی ایجاد و یک کنترل دکمه و یک کنترل treeview به فرمتان اضافه کنید. چند فرم دیگه هم به برنامه اضافه کنید و با دو بار کلیک بر روی دکمه، ابتدا فضای نام زیر را به برنامه اضافه کنید :

using System.Reflection;

سپس کدهای زیر را در رویداد کلیک دکمه بنویسید :

private void button1_Click(object sender, EventArgs e)
{
    Type[] AllTypesInProjects = Assembly.GetExecutingAssembly().GetTypes();
    TreeNode treeNode;
    for (int i = 0; i < AllTypesInProjects.Length; i++)
    {
        if (AllTypesInProjects[i].BaseType == typeof(Form))
        { 
            Form f = (Form)Activator.CreateInstance(AllTypesInProjects[i]);
            string FormText = f.Text;
            treeNode = new TreeNode(FormText);
            treeView1.Nodes.Add(treeNode);
        }
    }
}

سپس در رویداد After_select کنترل treeView کد زیر را بنویسید :

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
    if (e.Node != null)
    {
        string formName = e.Node.Text;
        var form = (Form)Activator.CreateInstance(Type.GetType("WindowsFormsApplication1." + formName));
        form.Show();
    }
}

WindowsFormsApplication1 نام پروژه تونه (بسته به نام پروژه اونو هم تغییر بدین.) برنامه را اجرا و نتیجه را با کلیک بر روی دکمه مشاهده کنید :
treeview
treeview1