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论坛