我需要做一个类似QQ的查看聊天历史纪录的东西,就是在户窗口上点击一个按钮打开一个新的窗口,而新的窗口的位置刚好在原来窗口位置的正下方,而且这个新的窗口会随父窗口的关闭而关闭,随父窗口的移动而移动现在的问题是这个字窗口在第一次显示出来的时候总是在他苏属性里面定好了的位置,而不是出现在预料的位置,但是第二次显示的时候位置就完全正确,而且以可以一起移动,我的代码如下public static log x= new log(); //log为子窗口类private void button1_Click(object sender, System.EventArgs e)//如果子窗口未显示状态就隐藏,否则显示
{
int cx= this.Location.X;
int cy= this.Location.Y;
x.Location= new Point(cx,cy+400);//父窗口高度为400
x.Refresh();
if (x.Visible== false)
{
x.Show();
}
else
{
x.Hide();
}
}private void info_LocationChanged(object sender, System.EventArgs e)//这是当父窗口移动时,带动子窗口一起移动
{
int cx= this.Location.X;
int cy= this.Location.Y;
x.Location= new Point(cx,cy+400);
x.Refresh();
if (x.Visible== true)
{
x.Hide();
x.Show();
}
}
上面的问题在于第一次点击button1的时候子窗体出现的位置不在预料的位置。而第二次点击按钮隐藏,第三次点击按钮显示子窗口时,它出现的位置才对