PDA

View Full Version : سوال: نحوه ذخیره مقادیر برگشتی از font dialog box در دیتابیس



بیتا حکمت
دوشنبه 31 فروردین 1394, 11:04 صبح
سلام . دوستان دو سوال در مورد font dialog box دارم .

ســوال اول :

تا جایی که می دونم هیچ نوع داده مخصوصی نگه داری فونت نیستش . پس راه حلی که به ذهنم می رسه اینکه فونت رو به صورت رشته ذخیره کنم . اما سوال اینجاست که چطوری از این رشته استفاده کنم و فونت رو تغییر می دم .برای مثال فرض کنید دو رشته داریم به این صورت




string font_name = "Tahoma";
string font_size = "17";


حالا باید با چه کدی با استفاده از همان دو رشته بالا ، فونت Textbox1 رو به Tahoma و سایز 17 تغییر بدیم .

سوال دوم

چطوری باید تشخیص بدیم که تیک هایی که در بخش effect هست توسط کاربر انتخاب شده یا نه تا روی متن اونا رو اعمال کنیم .


http://8pic.ir/images/f3vd3j7usmg0xyuy45ws.png (http://8pic.ir/)

محمد رضا فاتحی
دوشنبه 31 فروردین 1394, 12:02 عصر
الان بهتون می گم
شما اول مقدار بازگشتی از فونت دیالوگ رو به اینصورت بصورت رشته ذخیره می کنید
string font = fontpicker.Font.ToString();

این به صورت رشته ذخیره و فراخوانی میشه...به این صورت....
[Font: Name=2 Niki Border, Size=14.25, Units=3, GdiCharSet=178, GdiVerticalFont=False]


حالا میرسیم مرحله اصلی می خوایم از رشته به فونت برسیم


var cvt = new FontConverter();

Font f = cvt.ConvertFromString(myfontstring) as Font;
label1.Font = f;


البته اگه سوالتون ررو درست متوجه شده باشم بخصوص سوال دوم

بیتا حکمت
دوشنبه 31 فروردین 1394, 12:17 عصر
البته اگه سوالتون ررو درست متوجه شده باشم بخصوص سوال دوم

خیلی ممنونم . اجرکم عند الله . کاملا" درست شدین سوالم چی هست و مشکل اصلی به لطف شما حل شد . فقط یک مساله کوچیکی باقی می مونه اینکه چرا وقتی مثلا" تو قسمت افکت تیک underline رو فعال می کنم اما متن داخل تکست باکس یا label اندرلاین دار نمیشه ؟




if (dlg.ShowDialog() == DialogResult.OK)
{

string font = dlg.Font.ToString();
//MessageBox.Show(font);
var cvt = new FontConverter();

Font f = cvt.ConvertFromString(font) as Font;
textBox1.Font = f;
label2.Font = f;


}

بیتا حکمت
دوشنبه 31 فروردین 1394, 14:17 عصر
ویـــرایش : حل شد . این مثال نشون می ده که چطوری یک فونت به رشته و یک رشته به فونت تبدیل میشه .



DialogResult result = dlg.ShowDialog();
// See if OK was pressed.
if (result == DialogResult.OK)
{
// Get Font.
Font font = dlg.Font;
// Set TextBox properties.

MessageBox.Show(dlg.Font.ToString());
System.ComponentModel.TypeConverter converter =
System.ComponentModel.TypeDescriptor.GetConverter( typeof(Font));
string fontName1 = converter.ConvertToInvariantString(dlg.Font);
Font font1 = (Font)converter.ConvertFromString(fontName1);
textBox1.Font = font;




}

بیتا حکمت
جمعه 04 اردیبهشت 1394, 20:13 عصر
ای داد بیداد . من الان متوجه شدم که بازم اشتباه کــردم!!. چون خطا نداده بود منم فکــر می کردم رشته به فونت تبدیل شده . دوستان راهنمایی کنید چطور می تونم یک رشته رو به فونت تبدیل کنم مثال تو کد پایین میخوام از sfont استفاده کنم و فونت Textbox رو تغییر بدم .




string sfont = "Tahoma, 20.25pt";


System.ComponentModel.TypeConverter converter =
System.ComponentModel.TypeDescriptor.GetConverter( typeof(Font));

Font font1 = (Font)converter.ConvertFromString(sfont);
textBox1.Font = font1;

alireza264
پنج شنبه 07 خرداد 1394, 12:53 عصر
سلام هر چند خیلی دیره اما روشش اینه

Font font1;
String NamFont="Times New Roman, 28.2pt, style=Bold";
TypeConverter converter = TypeDescriptor.GetConverter(typeof(Font));
font1 = (Font)converter.ConvertFromString(NamFont);
label10.Font = font1;

ebrahim.rayatparvar
پنج شنبه 07 خرداد 1394, 14:46 عصر
این لینک فکر کنم بهتر باشه :
http://www.dotnetperls.com/fontdialog

بیتا حکمت
پنج شنبه 07 خرداد 1394, 14:57 عصر
دوستان عزیز بابت راهنمایی اتون ممنونم ، اما اون زمانی که این مشکل رو داشتم تاپیک مشابهی ایجاد کردم و تو اون تاپیک به جواب رسیدم
( البته جواب هاتون همچنان برام مفیده و مطالب بیشتری یاد گرفتم اما به این خاطر که وقت شما هدر نشه ، گفتم اطلاع بدم که قبلا" حل شده)