主窗体打开时有几个子窗体,怎么样使子窗体随主窗体一起放大缩小?

解决方案 »

  1.   

    在主窗体Resize事件里改变子窗体的width,height
      

  2.   

    SizeChanged事件里面操作子窗体的高和宽
      

  3.   

    在主窗体Resize事件里改变子窗体的width,height
      

  4.   


     private void Form1_SizeChanged(object sender, EventArgs e)
            {
                //Form2 subform = new Form2();
                if (this.WindowState == FormWindowState.Maximized)
                {
                    foreach (Form obj in this.MdiChildren)
                    {
                        obj.WindowState = FormWindowState.Maximized;
                        obj.Show();
                    }
                 }
             }
    实现了,测过
      

  5.   


            private void main_SizeChanged(object sender, EventArgs e)
            {
                foreach (Form obj in this.MdiChildren)
                {
                    obj.WindowState = FormWindowState.Minimized;
                    obj.Show();
                }
                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.cmsNinSystemShow.Enabled = true;
                    this.cmsNinSystemHide.Enabled = false;
                    this.ShowInTaskbar = false;
                }
                else
                {
                    this.cmsNinSystemShow.Enabled = false;
                    this.cmsNinSystemHide.Enabled = true;
                    this.ShowInTaskbar = true;
                }
            }
      

  6.   

            bool isno = false;//控制是否第一次改变。因为第一次打开主窗体里就会执行Resize事件
            int IntoHeight, IntoWidth;//放入每次改变时的父窗体值
            float TempHeight, TempWidth;//获得每次放大放小的比例值        private void main_Load(object sender, EventArgs e)
            {
                isno = true;
                IntoHeight = this.Height; IntoWidth = this.Width;
            }        private void main_Resize(object sender, EventArgs e)
            {
                if (isno)
                {
                    TempHeight = float.Parse(this.Height.ToString()) / float.Parse(this.IntoHeight.ToString());
                    TempWidth = float.Parse(this.Width.ToString()) / float.Parse(this.IntoWidth.ToString());
                    IntoHeight = this.Height; IntoWidth = this.Width;
                    ChangAllChildRenSize();
                }
            }        public void ChangAllChildRenSize()
            {
                foreach (Form tempChildForm in this.MdiChildren)
                {
                    tempChildForm.Height = int.Parse(Convert.ToString(Math.Round(tempChildForm.Height * TempHeight,0)));
                    tempChildForm.Width = int.Parse(Convert.ToString(Math.Round(tempChildForm.Width * TempWidth,0)));
                }
            }