c#窗体启动位置问题
publicpartialclassForm2:Form{publicForm2(){InitializeComponent();//this.Location=newP...
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
//this.Location = new Point(500, 500); //A
}
private void Form2_Load(object sender, EventArgs e)
{
this.Location = new Point(500, 500); // B
}
}
两个语句相同,写在A位置无效而写在B位置有效
我的问题是:这是为什么呀! 展开
{
public Form2()
{
InitializeComponent();
//this.Location = new Point(500, 500); //A
}
private void Form2_Load(object sender, EventArgs e)
{
this.Location = new Point(500, 500); // B
}
}
两个语句相同,写在A位置无效而写在B位置有效
我的问题是:这是为什么呀! 展开
4个回答
展开全部
在A处前你应该先设置窗体的StartPosition(窗体第一次出现的位置)为FormStartPosition.Manual(窗体的位置由 System.Windows.Forms.Control.Location 属性确定)
如果在A处不设置StartPosition的话默认为FormStartPosition.WindowsDefaultLocation(窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定)
括号里是属性的中文翻译,也就是说在窗体第一次显示时的位置是跟窗体的StartPosition属性有关的,第一次显示以后就只和窗体的Location属性有关了,我想这么说你应该能明白,代码如下A+B=C
public Form2()
{
InitializeComponent();
this.StartPosition = FormStartPosition.Manual; //A
this.Location = new Point(0, 0); //B
}
private void Form2_Load(object sender, EventArgs e)
{
this.Location = new Point(0, 0); //C
}
如果在A处不设置StartPosition的话默认为FormStartPosition.WindowsDefaultLocation(窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定)
括号里是属性的中文翻译,也就是说在窗体第一次显示时的位置是跟窗体的StartPosition属性有关的,第一次显示以后就只和窗体的Location属性有关了,我想这么说你应该能明白,代码如下A+B=C
public Form2()
{
InitializeComponent();
this.StartPosition = FormStartPosition.Manual; //A
this.Location = new Point(0, 0); //B
}
private void Form2_Load(object sender, EventArgs e)
{
this.Location = new Point(0, 0); //C
}
展开全部
我的理解是:
构造函数只确定该窗体自身的一些属性,即发生在构建该窗体的结构时。
Load事件发生在窗体加载时
这就好比:你做了一个正方形,正方形的颜色是什么样的,里面还有那些图形,这些都是构造函数做的,而正方形做好后,你要把它摆放在什么位置,这是Load事件做的。
再和窗体相比较,这个概念应该就好理解了吧?
构造函数只确定该窗体自身的一些属性,即发生在构建该窗体的结构时。
Load事件发生在窗体加载时
这就好比:你做了一个正方形,正方形的颜色是什么样的,里面还有那些图形,这些都是构造函数做的,而正方形做好后,你要把它摆放在什么位置,这是Load事件做的。
再和窗体相比较,这个概念应该就好理解了吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为在A的地方窗体的位置已经确定了,窗体已经出现,改变位置是无效的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,对于静态只读属性,只有一个地方可以改变它而使它有效,这个地方就是构造函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询