hamid.shekasteh
چهارشنبه 01 مهر 1388, 16:29 عصر
توی سایت چندین جا دیدم که افراد در مورد فونت خوب و کاربر پسند بحث کرده بودند ، خوبه انتخاب فونت رو به کاربر بسپاریم.
از اساتید می خواهم اگه مشکلی توی کد ها دیدند یا نظری داشتند حتما بنویسند.
من از روش زیر استفاده می کنم:
اول باید در قسمت Setting برنامه یه متغیر از نوع فونت با نام Font تعیین کنید:
برای این کار از مسیر زیر پنجره Settings.settings را باز کنید:
ProjectName>Properties>Settings.settings
حالا در بخش Name نام Font و در بخش Type ، System.Drawing.Font و در بخش Scope مورد User را انتخاب کنید.در قسمت Value نیز فونت پیشفرض را انتخاب کنید.
حالا یک کلاس تعریف می کنیم تا در تمام فرم ها از آن استفاده کنیم:
تابع را به صورت static تعریف می کنیم:
static public void SetFont(Form form)
{
System.Drawing.Font font = Properties.Settings.Default.Font;
foreach (Control Obj in form.Controls)
{
try
{
if (Obj.HasChildren)
foreach (Control Child in Obj.Controls)
try
{
Child.Font = font;
}
catch { }
Obj.Font = font;
}
catch { }
}
}
اگر فونت اشیا وابسته به والدشان باشد (پیش فرض دات نت)و شما تغییری نداده باشید حلقه زیر هم مانند بالا عمل می کند:
foreach (Control Obj in form.Controls)
{
try
{
Obj.Font = font;
}
catch { }
}
اشیایی که خاصیت Font را ندارند در catch می افتند.
حال برای تنظیم فونت هر کد می بایست در سازنده فرم خط زیر را اضافه نمایید:
حال برای تنظیم فونت هر کد می بایست در رویداد Paint فرم کدی مانند زیر را بنویسید:
private void frmMain_Paint(object sender, PaintEventArgs e)
{
Manager.SetFont(this);
}
اما کد دکمه تنظیم فونت توسط کاربر :
private void btnFont_Click(object sender, EventArgs e)
{
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
if (fontDialog1.Font.Size < 8 || fontDialog1.Font.Size > 12)
MessageBox.Show("اندازه فونت می بایست در محدوده 8 تا 12 باشد");
else
{
Properties.Settings.Default.Font = fontDialog1.Font;
Manager.SetFont(this); //SettingForm
}
}
Properties.Settings.Default.Save();
}
از اساتید می خواهم اگه مشکلی توی کد ها دیدند یا نظری داشتند حتما بنویسند.
من از روش زیر استفاده می کنم:
اول باید در قسمت Setting برنامه یه متغیر از نوع فونت با نام Font تعیین کنید:
برای این کار از مسیر زیر پنجره Settings.settings را باز کنید:
ProjectName>Properties>Settings.settings
حالا در بخش Name نام Font و در بخش Type ، System.Drawing.Font و در بخش Scope مورد User را انتخاب کنید.در قسمت Value نیز فونت پیشفرض را انتخاب کنید.
حالا یک کلاس تعریف می کنیم تا در تمام فرم ها از آن استفاده کنیم:
تابع را به صورت static تعریف می کنیم:
static public void SetFont(Form form)
{
System.Drawing.Font font = Properties.Settings.Default.Font;
foreach (Control Obj in form.Controls)
{
try
{
if (Obj.HasChildren)
foreach (Control Child in Obj.Controls)
try
{
Child.Font = font;
}
catch { }
Obj.Font = font;
}
catch { }
}
}
اگر فونت اشیا وابسته به والدشان باشد (پیش فرض دات نت)و شما تغییری نداده باشید حلقه زیر هم مانند بالا عمل می کند:
foreach (Control Obj in form.Controls)
{
try
{
Obj.Font = font;
}
catch { }
}
اشیایی که خاصیت Font را ندارند در catch می افتند.
حال برای تنظیم فونت هر کد می بایست در سازنده فرم خط زیر را اضافه نمایید:
حال برای تنظیم فونت هر کد می بایست در رویداد Paint فرم کدی مانند زیر را بنویسید:
private void frmMain_Paint(object sender, PaintEventArgs e)
{
Manager.SetFont(this);
}
اما کد دکمه تنظیم فونت توسط کاربر :
private void btnFont_Click(object sender, EventArgs e)
{
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
if (fontDialog1.Font.Size < 8 || fontDialog1.Font.Size > 12)
MessageBox.Show("اندازه فونت می بایست در محدوده 8 تا 12 باشد");
else
{
Properties.Settings.Default.Font = fontDialog1.Font;
Manager.SetFont(this); //SettingForm
}
}
Properties.Settings.Default.Save();
}