ITPUB论坛 » 开发工具和语言 » Visual C# » 请教: 关于C#中的This用法


2008-6-10 10:44 xxzqbxxzqb
请教: 关于C#中的This用法

举例: 有两个窗口form1和form2 , form1上有一个Button按钮, 点击它,弹出 form2窗口, 并且 form1窗口隐藏 。 代码如下:

1. private void button1_Click(object sender, EventArgs e)
2.        {
3.            new Form2().Show();
4.            this.Visible = false;
5.        }


问题 : 我刚写的时候,第4行写为 : form1.Visible=false;  出现错误提示。

所以,想请教,C#中的 This如何应用 ?    谢谢。

2008-6-10 11:09 yining
从基础学起

2008-6-10 12:00 smthgdin
this就是当前窗体form1的实例。
this和base是 C#的两个关键字,this是本类实例base是基类实例。

2008-6-10 12:44 xxzqbxxzqb
呵呵,谢谢啊

我这样写,可又实现不了需求:

private void button1_Click(object sender, EventArgs e)
        {
            new Form2().Show();
            
            ///this.Visible = false;

            Form1   f = new Form1();
            f.Visible = false;
        }


请问,如何才能不用 This 呢 ?

2008-6-10 13:21 smthgdin
当然不能new一个新的form1啦。:)
新form1对象和原来的form1是不一样的。

2008-6-10 13:21 smthgdin
为什么不用this?

2008-6-12 10:51 xxzqbxxzqb
我想试试 This 到底是什么

2008-6-12 11:54 银河使者
一般在当前form里操作自身,只需要使用this就可以。由于主窗口是在Program.cs中Main函数中建立了,代码如下:

        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());            
        }

      由于是隐式地建立Form1对象,因此,无法直接使用form1要操作Form1对象。如果非得要使用form1,可以改一下Program类,代码如下:

    static class Program.Visible=false了。
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        ///
        public static  Form1 form1;

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            form1 = new Form1();
            Application.Run(form1);
        }
    }

这样在其他同namespace的程序里就可以使用Program.form1.visu

2008-6-14 13:57 xxzqbxxzqb

2008-6-17 23:03 itpub小尾巴鱼
ft,不要每次都NEW出来一个新的FORM

2008-7-18 15:21 alecau
C#真是绕人

2008-7-19 10:31 asangel
学习

2008-7-30 11:21 chinafcl
还是VB比较简单些

页: [1]


Powered by ITPUB论坛