-
۲۳ مرداد ماه ۱۴۰۳ ساعت ۹:۴۹ دقیقه
-
کاربر شماره ۲۵۱۰۰۳
-
با توجه به سورس کد ذیل میتوان تغییر سایز کنترل ها را در فرم هوشمند سازی کرد :
private void Form1_Load(object sender, EventArgs e) { StoreInitialControlRectangles(this.Controls); } private void Form1_Resize(object sender, EventArgs e) { ResizeAllControls(this.Controls); } private void StoreInitialControlRectangles(Control.ControlCollection controls) { foreach (Control control in controls) { controlRectangles[control] = new Rectangle(control.Location, control.Size); if (control.HasChildren) { StoreInitialControlRectangles(control.Controls); } } } private void ResizeAllControls(Control.ControlCollection controls) { float xRatio = (float)this.Width / (float)defaultFormSize.Width; float yRatio = (float)this.Height / (float)defaultFormSize.Height; foreach (Control control in controls) { Rectangle initialRect; if (controlRectangles.TryGetValue(control, out initialRect)) { int newX = (int)(initialRect.X * xRatio); int newY = (int)(initialRect.Y * yRatio); int newWidth = (int)(initialRect.Width * xRatio); int newHeight = (int)(initialRect.Height * yRatio); control.Location = new Point(newX, newY); control.Size = new Size(newWidth, newHeight); } if (control.HasChildren) { ResizeAllControls(control.Controls); } } }
-