PDA

View Full Version : ذخیره تنظيمات فونت ديالوگ



81579001
شنبه 05 بهمن 1392, 15:43 عصر
سلام
چطور مي تونم تنظيمات فونت ديالوگ را در برنامه ذخيره کنم؟
برنامه اي نوشتم که يک امکان مي خواهم به آن اضافه کنم که کاربر در تنظيمات برنامه هر فونت وسايز فونتي را که در فونت ديالوگ بود انتخاب کرد برنامه ازاين پس با همين تنظيمات اجرا شود.
براي ذخيره امکان استفاده از ديتابيس مي باشد.
نمونه کدي که نوشتم اما کار نداد!!!

fontDialog1.ShowDialog();
string FontCustom = fontDialog1.Font.ToString();
Font = FontCustom;

و اما خطا
http://upload7.ir/imgs/2014-01/21320599203005889516.jpg

متشکرم از راهنماي شما

majid_i68
شنبه 05 بهمن 1392, 15:51 عصر
Font objFont;//تعریف متغیر از نوع فونت

private void button3_Click(object sender, EventArgs e)
{
FontDialog frmFont = new FontDialog();//ساخت شی از نوع فونت

if (frmFont.ShowDialog() == DialogResult.OK)//را انتخاب کرد ok پنجره فوت نمایش داده میشود و اگر کاربر دکمه
{
objFont = frmFont.Font;//فونت انتخاب شده در متغیر ذخیره میشود
}
}

majid_i68
شنبه 05 بهمن 1392, 15:55 عصر
obj.Font = objFont;//قلم انتخاب شده برای فونت شی اعمال میشود

81579001
شنبه 05 بهمن 1392, 20:30 عصر
سلام
ممنون از جوابتون
ولی کار نداد
اگر امکان دارد بصورت پروژه ارائه بفرمایید
متشکرم

81579001
شنبه 05 بهمن 1392, 21:19 عصر
سلام
مواردی که کار نداد
1- Font objFont;//تعریف متغیر از نوع فونت
2- objFont = frmFont.Font;//فونت انتخاب شده در متغیر ذخیره میشود
3- obj.Font = objFont;//قلم انتخاب شده برای فونت شی اعمال میشود
متشکرم اگر بصورت پرژه ارائه بفرماید

fmehrvarzi
شنبه 05 بهمن 1392, 21:46 عصر
برنامه ات اگر ویندوز اپلیکیشن باشد باید با کدهای دوستمون درست کار کند
شاید برنامه ات کنسولی است و یا شاید، فضای نامی را جا انداختی و یا شاید لایبراری در رفرنس نیست ....

81579001
شنبه 05 بهمن 1392, 22:03 عصر
سلام
ممنون از جوابتون
اما
1 ویندوز اپلیکیشن هست
2 کنسولی نیست
برای همین عرض کردم پروژه ارائه بفرمایید تا ایراد پیدا بشود
درصورتی که شما تست کردید و جواب داد مرحمت کنید.
با تشکر

mahdi.compute
شنبه 05 بهمن 1392, 22:24 عصر
سلام
چطور مي تونم تنظيمات فونت ديالوگ را در برنامه ذخيره کنم؟
برنامه اي نوشتم که يک امکان مي خواهم به آن اضافه کنم که کاربر در تنظيمات برنامه هر فونت وسايز فونتي را که در فونت ديالوگ بود انتخاب کرد برنامه ازاين پس با همين تنظيمات اجرا شود.
براي ذخيره امکان استفاده از ديتابيس مي باشد.
نمونه کدي که نوشتم اما کار نداد!!!

fontDialog1.ShowDialog();
string FontCustom = fontDialog1.Font.ToString();
Font = FontCustom;

و اما خطا
http://upload7.ir/imgs/2014-01/21320599203005889516.jpg

متشکرم از راهنماي شما

این جوری تست کن !

FontDialog FD = new FontDialog();
FD.ShowDialog();

button7.Font = new Font(FD.Font.Name, FD.Font.Size);


این جوری هم میشه !

button7.Font = FD.Font;

fmehrvarzi
شنبه 05 بهمن 1392, 22:56 عصر
این هم یک پروژه که دکمه فونتشو نگاه کن یه نمونه همین کاره
نوشتن متن روی عکس (http://bit.ly/LZRkHF)

majid_i68
یک شنبه 06 بهمن 1392, 07:51 صبح
یه تکست باکس رو فرم قرار بده و یک دکمه.... کدهای زیر رو به دکمه اضافه کن


private void button1_Click(object sender, EventArgs e)
{
FontDialog objFont = new FontDialog();//ساخت شی از کلاس فونت

if (objFont.ShowDialog() == DialogResult.OK)//نمایش پنجره فونت..
// رو زد ok اگر کاربر
{
textBox1.Font = objFont.Font;//فونت انتخاب شده ..به تکست باکس اعمال میشود
}
}

majid_i68
یک شنبه 06 بهمن 1392, 07:55 صبح
اینم لینک مثالی که زدم (http://s5.picofile.com/file/8110641242/WindowsFormsApplication4.zip.html)

81579001
یک شنبه 06 بهمن 1392, 09:34 صبح
سلام
تشکر از زحمات شما عزیزان
کدها حل حل شد ولی اگر از دیتابیس فرا خوانی کنم باز همان پیام خطا را می دهد!!!
متشکرم

shahryari
یک شنبه 06 بهمن 1392, 09:58 صبح
سلام دوست من
برای اینکه شما بتوانید مقدار یک فونت را شامل : نام - اندازه - استایل ، در بانک ذخیره کنید و بعدا از آن استفاده کنید ، ابندا باید فونت مورد نظر را توسط FontConverter به رشته تبدیل کنید و در بانک ذخیره کنید ، نوع فیل متنی باشد برای استفاده نیز آن متن را از بنک گرفته و مجددا توسط FontConverter به فونت تبدیل و به شی مورد نظر نسبت دهید.
مثال تبدیل فونت به متن:
FontConverter fc = new FontConverter();
string f = fc.ConvertToString(this.Font);
مثال تبدیل متن به فونت:
FontConverter fc = new FontConverter();
Font f = (Font)fc.ConvertFromString("Tahoma; 8.25pt");
this.Font = f;

81579001
یک شنبه 06 بهمن 1392, 10:28 صبح
سلام
این بار فایل را + سورس گذاشتم تا ایراد آن مشخص شود

Font objFont;
private void Form1_Load(object sender, EventArgs e)
{

StreamReader sr = new StreamReader(Application.StartupPath + "\\Font.txt");
label1.Text = sr.ReadToEnd();
sr.Close();

label1.Font = objFont;


}

private void btnFont_Click(object sender, EventArgs e)
{
FontDialog frmFont = new FontDialog();

if (frmFont.ShowDialog() == DialogResult.OK)
{
objFont = frmFont.Font;
StreamWriter sw = new StreamWriter(Application.StartupPath + "\\Font.txt");
sw.Write(objFont);
sw.Close();
}

label2.Font = objFont;

Application.Restart();
}


با تشکر فراوان از حوصله شما

shahryari
یک شنبه 06 بهمن 1392, 10:56 صبح
این جوری بنویس
Font objFont;
private void Form1_Load(object sender, EventArgs e)
{
string f = System.IO.File.ReadAllText(Application.StartupPath + "\\Font.txt");
FontConverter fc = new FontConverter();
objFont = (Font)fc.ConvertFromString(f);
label2.Font = objFont ;
}

private void btnFont_Click(object sender, EventArgs e)
{
FontDialog frmFont = new FontDialog();

if (frmFont.ShowDialog() == DialogResult.OK)
{
objFont = frmFont.Font;
FontConverter fc = new FontConverter();
string f = fc.ConvertToString(objFont );
System.IO.File.WriteAllText(Application.StartupPat h + "\\Font.txt", f);
}

label2.Font = objFont;

Application.Restart();
}
در ابتدا چون متن فونت ذخیره نشده ممکن است خطا دهد
بعد از زدن دکمه ذخیره درست کار میکند