در این پست یک برنامه بسیار ساده را ارائه می دهم که در آن با تغییر اندازه فرم ، یک برچسب با نوشتن ابعاد داخلی فرم همواره در وسط فرم قرار می گیرد . این کار نسبتا خیلی ساده است اما من از نوشتن این کد کوچک و ساده منظور خاصی را دنبال می کنم و آن هم این است که آنچه در برنامه نویسی از خود کدنویسی مهمتراست رعایت اصول برنامه نویسی می باشد که با رعایت آن نکات برنامه شما براحتی قابل توسعه خواهد بود یعنی تمام آنچه که شما در کدهای زیر می بینید را می شود در چند خط نیز نوشت اما اگر شما اصول برنامه نویسی را رعایت نکنید هنگامی که می خواهید برنامه خود را توسعه دهید و یا برای موارد مشابه استفاده کنید با مشکلات و چالش های بزرگی مواجه می شوید پس بهتر است از ابتدای کار بجای اینکه کد هدف را یاد بگیرید اصول استفاده صحیح از کدها را یاد گرفته و از آن مهمتر اینکه به رعایت این اصول عادت کنید در غیر این صورت شما از یک برنامه نویس که می تواند برنامه های چند خطی بنویسد پا فراتر نمی گذارید . حالا متن کد زیر را بدقت بررسی کنید.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace DynamicLabelPositioner
{
public partial class Form1 : Form
{
private Label sizeInfoLabel;
public Form1()
{
InitializeComponent();
InitializeControls();
}
private void InitializeControls()
{
sizeInfoLabel = lbl; // فرض میکنیم lbl در طراحی فرم تعریف شده است
UpdateLabelText();
CenterControl(sizeInfoLabel);
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
UpdateLabelText();
CenterControl(sizeInfoLabel);
}
/// بهروزرسانی متن برچسب با اطلاعات اندازه فرم
private void UpdateLabelText()
{
if (ClientSize.Width >= 0 && ClientSize.Height >= 0)
{
sizeInfoLabel.Text = $"Width: {ClientSize.Width} Height: {ClientSize.Height}";
}
else
{
sizeInfoLabel.Text = "Invalid size detected";
}
}
/// مرکزی کردن یک کنترل در فرم
private void CenterControl(Control control)
{
if (control == null) return;
int x = (ClientSize.Width - control.Width) / 2;
int y = (ClientSize.Height - control.Height) / 2;
/// اطمینان از مختصات مثبت
control.Location = new Point(Math.Max(0, x), Math.Max(0, y));
}
}