none
C#基础知识 RRS feed

  • 问题

  • private void button1_Click(object sender, EventArgs e)
            {
                Form2 form = new Form2();

                form.Show();

               
            }
    上面的程序当单击button1按钮后会进入 Form2窗体,现在有一个问题是 每单击一次Form2窗体就出来几次如何让它只出来一次?
    顺便再问一个小问题 每个程序都会引用一些命名空间如using System.Text; 当我使用这个空间内的类或方法时,想导入这个命名空间但又不知道是属于哪个空间的,此时怎么办?有快捷键吗?

    2009年6月9日 1:32

答案

  • 你好,当你知道类名,但是不知道在哪个命名空间的时候,可以在类上面点击右键,有个解析功能,会列出它所在的命名空间,并提示下一步如何操作。或者,点击类名下面的红色下划线也是同样的效果。
    邹俊才
    2009年6月9日 1:45
    版主
  •  Form2 form = new Form2(); 

     form.ShowDialog();

     

    如果不知道名称空间可以到 MSDN 上查,如果你是用的 VS 2005 或 2008 你可以把鼠标放在没有引用名称空间的对象上面可以引用这个名称空间


    知识改变命运,奋斗成就人生!
    2009年6月9日 1:39
    版主
  • 你好你可以新建个私有字段为Form2类型的 并建立其对应的属性在属性中记得判断Form2是否已经关闭或者未初始化,则用new初始化 然后每次调用这个属性的MyForm2.Show()

    只要你记得是哪个类 比如我写个Regex 如果没有引用命名空间的话 把鼠标放在这个类型上 然后按All+Shift+F10 然后在指针下边会有提示的 你只需点击enter即可,如果有时又过个命名空间下都有这个类 你作下选择即可
    努力着就不会放弃!http://hi.baidu.com/1987raymond
    2009年6月9日 1:52
    版主
  • 单件模式

    public partial class Form2 : Form
        {
            private  Form2()
            {
                InitializeComponent();
            }
           
            private static  Form2 _frm;
            public static Form2 Singleton()
            {
                if (_frm == null || _frm.IsDisposed)
                {
                    _frm = new Form2();
                }
                return _frm;
            }
           
        }

    private void button1_Click(object sender, EventArgs e)
            {
                            Form2.Singleton().Show();
            }


    http://feiyun0112.cnblogs.com/
    2009年6月9日 2:09
    版主
  • private void button1_Click(object sender, EventArgs e)
            {
                Form2 form = new Form2();

                form.Show();

               
            }
    上面的程序当单击button1按钮后会进入 Form2窗体,现在有一个问题是 每单击一次Form2窗体就出来几次如何让它只出来一次?
    顺便再问一个小问题 每个程序都会引用一些命名空间如using System.Text; 当我使用这个空间内的类或方法时,想导入这个命名空间但又不知道是属于哪个空间的,此时怎么办?有快捷键吗?


    >想导入这个命名空间但又不知道是属于哪个空间的,此时怎么办?有快捷键吗?

    control +alt  + J   对象浏览器   上面有搜索
    紫柔版主的头像真叫萌得一个不行啊。。。。
    答案800 撒花
    2009年6月9日 2:50
    版主
  •  Form2 form = new Form2(); 

     form.ShowDialog();

     

    如果不知道名称空间可以到 MSDN 上查,如果你是用的 VS 2005 或 2008 你可以把鼠标放在没有引用名称空间的对象上面可以引用这个名称空间


    知识改变命运,奋斗成就人生!

    hi,
       你说的没错,我来补充一下:
     上面的建议给出的方法:
    1.1这个可以解决问题。但是有几点值得注意:

    showdialog和show有什么区别:showdialog就是显示有模式的窗体,showdialog后面的语句不会执行,直到显示的窗体被关闭。
    show就是无模式的窗体,显示窗体后不论窗体是否关闭执行show后面的语句;如果你要求复杂或许不能满足;
    1.2.单个窗口,其实是设计模式里最简单的,singleton模式。这个可以实现你要求,而且很经典的模式。你可以搜索到很多资料;
    第二个问题:
       想知道空间内的类或方法,也有很多。

    2.1vs的自动提示;
    2.2查看msdn;
    2.3还有你要是想代码运行时查看信息,动态实现,就可以考虑使用反射这个强大的机制。网上代码页很多。  Type tp = Type.GetType(input, false, false);
      呵呵,其它需要自己查询了~


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    2009年6月9日 12:25
    版主

全部回复

  •  Form2 form = new Form2(); 

     form.ShowDialog();

     

    如果不知道名称空间可以到 MSDN 上查,如果你是用的 VS 2005 或 2008 你可以把鼠标放在没有引用名称空间的对象上面可以引用这个名称空间


    知识改变命运,奋斗成就人生!
    2009年6月9日 1:39
    版主
  • 你好,当你知道类名,但是不知道在哪个命名空间的时候,可以在类上面点击右键,有个解析功能,会列出它所在的命名空间,并提示下一步如何操作。或者,点击类名下面的红色下划线也是同样的效果。
    邹俊才
    2009年6月9日 1:45
    版主
  • 你好你可以新建个私有字段为Form2类型的 并建立其对应的属性在属性中记得判断Form2是否已经关闭或者未初始化,则用new初始化 然后每次调用这个属性的MyForm2.Show()

    只要你记得是哪个类 比如我写个Regex 如果没有引用命名空间的话 把鼠标放在这个类型上 然后按All+Shift+F10 然后在指针下边会有提示的 你只需点击enter即可,如果有时又过个命名空间下都有这个类 你作下选择即可
    努力着就不会放弃!http://hi.baidu.com/1987raymond
    2009年6月9日 1:52
    版主
  • 单件模式

    public partial class Form2 : Form
        {
            private  Form2()
            {
                InitializeComponent();
            }
           
            private static  Form2 _frm;
            public static Form2 Singleton()
            {
                if (_frm == null || _frm.IsDisposed)
                {
                    _frm = new Form2();
                }
                return _frm;
            }
           
        }

    private void button1_Click(object sender, EventArgs e)
            {
                            Form2.Singleton().Show();
            }


    http://feiyun0112.cnblogs.com/
    2009年6月9日 2:09
    版主
  • private void button1_Click(object sender, EventArgs e)
            {
                Form2 form = new Form2();

                form.Show();

               
            }
    上面的程序当单击button1按钮后会进入 Form2窗体,现在有一个问题是 每单击一次Form2窗体就出来几次如何让它只出来一次?
    顺便再问一个小问题 每个程序都会引用一些命名空间如using System.Text; 当我使用这个空间内的类或方法时,想导入这个命名空间但又不知道是属于哪个空间的,此时怎么办?有快捷键吗?


    >想导入这个命名空间但又不知道是属于哪个空间的,此时怎么办?有快捷键吗?

    control +alt  + J   对象浏览器   上面有搜索
    紫柔版主的头像真叫萌得一个不行啊。。。。
    答案800 撒花
    2009年6月9日 2:50
    版主
  •  Form2 form = new Form2(); 

     form.ShowDialog();

     

    如果不知道名称空间可以到 MSDN 上查,如果你是用的 VS 2005 或 2008 你可以把鼠标放在没有引用名称空间的对象上面可以引用这个名称空间


    知识改变命运,奋斗成就人生!

    hi,
       你说的没错,我来补充一下:
     上面的建议给出的方法:
    1.1这个可以解决问题。但是有几点值得注意:

    showdialog和show有什么区别:showdialog就是显示有模式的窗体,showdialog后面的语句不会执行,直到显示的窗体被关闭。
    show就是无模式的窗体,显示窗体后不论窗体是否关闭执行show后面的语句;如果你要求复杂或许不能满足;
    1.2.单个窗口,其实是设计模式里最简单的,singleton模式。这个可以实现你要求,而且很经典的模式。你可以搜索到很多资料;
    第二个问题:
       想知道空间内的类或方法,也有很多。

    2.1vs的自动提示;
    2.2查看msdn;
    2.3还有你要是想代码运行时查看信息,动态实现,就可以考虑使用反射这个强大的机制。网上代码页很多。  Type tp = Type.GetType(input, false, false);
      呵呵,其它需要自己查询了~


    Frank.Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    老徐的博客:http://www.cnblogs.com/frank_xl
    2009年6月9日 12:25
    版主