Form2 f2 = new Form2(this)中this指的是什么 C#
父窗体:privatevoidbutton1_Click(objectsender,EventArgse){Form2f2=newForm2(this);f2.TopLe...
父窗体:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f2.Show();
}
子窗体:
private Form1 _f1;
public Form2(Form1 f1): this()
{
this._f1 = f1;
}
谢谢你们的回答,但满意答案只有一个,所以,,, 展开
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(this);
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f2.Show();
}
子窗体:
private Form1 _f1;
public Form2(Form1 f1): this()
{
this._f1 = f1;
}
谢谢你们的回答,但满意答案只有一个,所以,,, 展开
4个回答
展开全部
this指的是本对象,也就是当前对象。
Form2 f2 = new Form2(this);
这个this指的是父窗体自己,即为Form1的对象。这是在建立Form2的子窗体对象f2时,把父窗体的地址当参数传给子窗体f2,作为子窗体的私有成员。
这样f2就可以与父窗体有联系,直接从f2访问父窗体了。
this._f1 = f1; //把参数f1赋给Form2的私有成员_f1
Form2 f2 = new Form2(this);
这个this指的是父窗体自己,即为Form1的对象。这是在建立Form2的子窗体对象f2时,把父窗体的地址当参数传给子窗体f2,作为子窗体的私有成员。
这样f2就可以与父窗体有联系,直接从f2访问父窗体了。
this._f1 = f1; //把参数f1赋给Form2的私有成员_f1
追问
那我这么写为什么出错,怎么改
Form2 f2 = new Form2(this);//错误 1 关键字“this”在当前上下文中不可用
private void button1_Click(object sender, EventArgs e)
{
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f2.Show();
}
好像可以了,是我想太多了
展开全部
第一个方法中的 this 表示当前正在实例化Form2 的这个窗体
第二个方法中的this 表示 Form2
总之 this 就是本窗体的意思.
第二个方法中的this 表示 Form2
总之 this 就是本窗体的意思.
更多追问追答
追问
那我这么写为什么出错,怎么改
Form2 f2 = new Form2(this);//错误 1 关键字“this”在当前上下文中不可用
private void button1_Click(object sender, EventArgs e)
{
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f2.Show();
}
追答
你为什么要把 this 传进去?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this是当前窗体,也就是父窗体自己,这么写指定了两个窗体的父子关系,这样可以在子窗体中直接取得父窗体的控件上的值,以及一些变量的值。
更多追问追答
追问
那我这么写为什么出错,怎么改
Form2 f2 = new Form2(this);//错误 1 关键字“this”在当前上下文中不可用
private void button1_Click(object sender, EventArgs e)
{
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f2.Show();
}
追答
是C#的winform么?这个我记得this应该是写在f2.Show(this)里,new的时候不写。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this指的是当前操作对象,button1
更多追问追答
追问
那我这么写为什么出错,怎么改
Form2 f2 = new Form2(this);//错误 1 关键字“this”在当前上下文中不可用
private void button1_Click(object sender, EventArgs e)
{
f2.TopLevel = false;
this.panel1.Controls.Add(f2);
f2.Show();
}
追答
好像就不用参数吧,this去掉不行吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询