日期:2014-05-17  浏览次数:20732 次

我有一个关于MDIFORM的问题
我有一个MDIFORM。有三个按钮,一个可以在MDIFORM里面创建窗体,一个可以隐藏MDICHILD窗体,一个可以显示隐藏的窗体。但是问题是窗体调用HIDE隐藏后,在调用SHOW以后,窗体的位置会向下和想右移动,该如何解决
------最佳解决方案--------------------
namespace test
{
    public partial class FrmLocation : Form
    {
        public FrmLocation()
        {
            InitializeComponent();
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            Position p = new Position();
            p.X = this.Location.X;
            p.Y = this.Location.Y;
            this.Tag = p;
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            var p = this.Tag as Position;
            this.Location = new Point(p.X,p.Y);
        }
    }

    public class Position
    {
        public int X { get; set; }
        public int Y { get; set; }
    }
}

例如上面的代码,我这里只是用了一个窗体,你直接把this换成你显示的窗体对象就可以,效果图如下

------其他解决方案--------------------
可以使用窗体的tag保存隐藏前窗体的位置,显示时再读取出来重新赋给窗体,不知道有么有其他方便的方法
------其他解决方案--------------------
有道理感谢 。