110,568
社区成员
发帖
与我相关
我的任务
分享
button1.Anchor = AnchorStyles.Left | AnchorStyles.Top |
AnchorStyles.Bottom | AnchorStyles.Right;
private void test_Click(object sender, EventArgs e)
{
//MessageBox.Show(((float)52 / (float)45).ToString() + "qq");
Form2 subform = new Form2();
subform.MdiParent = this;
subform.Show();
if (this.WindowState == FormWindowState.Normal)
{
foreach (Form obj in this.MdiChildren)//obj.Width / obj.Height I will know it soon.
{
changeW = (double)this.Width / (double)obj.Width;
changeH = (double)this.Height / (double)obj.Height;
}
}
}
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();
}
}
if (this.WindowState == FormWindowState.Normal)
{
foreach (Form obj in this.MdiChildren)//obj.Width / obj.Height
{
double a = (double)this.Width / changeW;
if (a.ToString() != string.Empty)
{
obj.Width = int.Parse(Convert.ToString(Math.Round(a,0)));
}
double b = (double)this.Height / changeH;
if (b.ToString() != string.Empty)
{
obj.Height = int.Parse(Convert.ToString(Math.Round(b, 0)));//float转换为int型时,“.”不能转换要注意
}
}
}
}
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)));
}
}