点按钮之后 NEW一下你填的那个窗体明就可以阿! 前提条件你输入的名称已存在,可以加异常处理!

解决方案 »

  1.   

    Form093 fm=new Form093();
    fm.Show();
      

  2.   

    [DllImport("user32.dll")]
            static extern IntPtr FindWindow(string ClassName, string WindowName);        private void button1_Click(object sender, EventArgs e)
            {
                IntPtr handle = FindWindow(null, textBox1.Text);
                Form findform = Form.FromHandle(handle) as Form;
                findform.Text = "找到的窗口";
            }
      

  3.   

    建一个哈希表            Hashtable h = new Hashtable();
                Form f1=new Form();
                f1.Name="form1";
                Form f2=new Form();
                f2.Name="form2";
                h.Add(f1.Name, f1);
                h.Add(f2.Name, f2);            ((Form)h[textBox1.Text]).Show();
      

  4.   

    foreach (Form f in Application.OpenForms)
                {
                    if (f.Name.IndexOf(textBox1.Text) > 0)
                        f.Activate();
                }
      

  5.   

    要不搞個switch 點按鈕` new 你的form ^_^
      

  6.   

    现有N(N>20)个窗口,  
    怎样在一个TextBox中输入窗口名(例如:"Form093"),点击按钮后  
    直接就可以打开一个新的窗口Form093 ? 
      

  7.   


    private void button1_Click(object sender, System.EventArgs e)
    {
    Form a=new Form();
    string s1=(string.Format(this.textBox1.Text,a));
    a.ShowDialog();
    }
      

  8.   

    private void button1_Click(object sender, System.EventArgs e)
    {
    Form a=new Form();
    string s1=(string.Format(this.textBox1.Text,a));
    a.ShowDialog();
    }==> 不行,只是打开一个新窗口,没有打开Form093foreach (Form f in Application.OpenForms)
                {
                    if (f.Name.IndexOf(textBox1.Text) > 0)
                        f.Activate();
                }
    ==> 不是让窗口成为活动窗口,而是打开建一个哈希表            Hashtable h = new Hashtable();
                Form f1=new Form();
                f1.Name="form1";
                Form f2=new Form();
                f2.Name="form2";
                h.Add(f1.Name, f1);
                h.Add(f2.Name, f2);            ((Form)h[textBox1.Text]).Show();
    ==> 如果有200个窗口,要注册200次,不好!请问还有没有更好的方法???
      

  9.   

    这个问题要用到反射机制!有兴趣可以去网上查查!但是真的做程序不可能这样做!应该用listBox给出下拉!不然代码具有危险性,存在风险!而且不健壮!
      

  10.   

    你可以把参数传进来再new
    Form093 fm=new Form093();
    fm.Show();
      

  11.   

    Type type = Assembly.LoadFrom("??.dll").GetType("namespace.class");
                Form f = Activator.CreateInstance(type);f.show();
      

  12.   

    如果数量有限,将几个常用的的窗体先全NEW出来,并且HIDE住,使用哪个SHOW哪个
      

  13.   

    private Form _additionForm = null;
    ...
    // formName 必须是命名空间+formName
    Type type = Type.GetType(formName);
    object obj = Activator.CreateInstance(Type.GetType(formName));
    this._additionForm = (Form)obj;