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位置有效
我的问题是:这是为什么呀!
展开
 我来答
dkxpsg
2010-05-30 · TA获得超过1627个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1043万
展开全部
在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
}
N多的肉
2010-05-30 · TA获得超过3541个赞
知道小有建树答主
回答量:2260
采纳率:34%
帮助的人:612万
展开全部
我的理解是:
构造函数只确定该窗体自身的一些属性,即发生在构建该窗体的结构时。
Load事件发生在窗体加载时

这就好比:你做了一个正方形,正方形的颜色是什么样的,里面还有那些图形,这些都是构造函数做的,而正方形做好后,你要把它摆放在什么位置,这是Load事件做的。

再和窗体相比较,这个概念应该就好理解了吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江小右
2010-05-30 · TA获得超过6928个赞
知道小有建树答主
回答量:1195
采纳率:0%
帮助的人:825万
展开全部
因为在A的地方窗体的位置已经确定了,窗体已经出现,改变位置是无效的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西三227
2010-05-30 · TA获得超过1168个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:341万
展开全部
很简单,对于静态只读属性,只有一个地方可以改变它而使它有效,这个地方就是构造函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式