PDA

View Full Version : سوال: مشکل در انتقال فونت RichTextBox به برنامه ی Notepad



son_of_sun95
پنج شنبه 15 خرداد 1393, 21:10 عصر
سلام خدمت اساتید محترم...شاید سوالم خیلی مبتدیانه باشه ولی ممنون میشم اگر بهم پاسخ بدین....
من برنامه ی نوتپدی رو درست کردم که در آن از ریچ تکست باکس استفاده شده...
مشکل اینجاست که وقتی فنت فایل را تغییر میدهم و آن را تحت یک فایل تکست سیو میکنم تغییرات فنت پس از اجرای فایل سیو شده با نوتپد متعلق به ویندوز اعمال نمیشود و متن ها به حالت اولیه ی خود بر میگردند...
این هم کد بنده:
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "فایل متنی(*.txt)|*.txt|انواع فایل ها(*.*)|*.*";
saveFileDialog.Title = "ذخیره ی فایل متنی";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
richTxtBox.SaveFile(saveFileDialog.FileName,RichTe xtBoxStreamType.PlainText);
Application.Exit();
}
ممنون میشم راهنماییم کنید....

gjmkdyttyhujk
پنج شنبه 15 خرداد 1393, 23:41 عصر
فکر کنم باید زنگ بزنیم به بیل گیتس:لبخند:
این میتونه مربوط بشه به تنظیمات فایلتون در نوتپد. یا اینکه برنامه نوتپد اون فونتی که شما برای فایل مشخص کردید رو نداره و از یک فونت پیش فرض استفاده میکنه، مثل browserها. یه کاوشی انجام دهید شاید مفید فایده واقع شود.:لبخند:

Mahmoud.Afrad
جمعه 16 خرداد 1393, 00:05 صبح
اولا که نوت پد ویندوز تنظیمات فونت درونی داره و نمیتونه قالب های فونت و رنگ رو نشون بده.(نمیتونه فایل rtf رو بدرستی نمایش بده)
دوما شما متن رو بصورت ساده و فقط متن ذخیره کردید یعنی PlainText.



برای اینکه متوجه بشی این فونت و رنگ چجوری ذخیره میشه فایل رو بصورت rtf ذخیره کنRichTextBoxStreamType.RichText

حالا فایل ذخیره شده رو هم با نت پد و هم با وردپد باز کن.
(یه جورایی میشه اینطور تعبیر کرد که در نت پد از تکست باکس استفاده شده نه از ریچ تکست باکس)

son_of_sun95
جمعه 16 خرداد 1393, 00:16 صبح
ممنون از پاسختون...یعنی هیچ راهی نداریم برای حل این مشکل جز اینکه واسه ساخت نوتپد از تکست باکس استفاده کنیم؟

Mahmoud.Afrad
جمعه 16 خرداد 1393, 00:25 صبح
میتونی به همون صورت rtf ذخیره کنی. برای لود هم متن رو به خصوصیت rtf ریچ تکست باکس بده نه text.

son_of_sun95
جمعه 16 خرداد 1393, 00:35 صبح
ولی مشکل اینجاست پس از ذخیره به صورت rtf و اجراش توسط نوتپد ویندوز یه سری متن اضافی به متن اصلی پیوست میشه و البته باز هم فونت تغییر یافته رو نمایش نمیده...
ولی وقتی با ورد اجراش میکنم مشکلی نداره...ولی من میخوام تو نوتپد ویندوز هم بدون مشکل اجرا بشه....

Mahmoud.Afrad
جمعه 16 خرداد 1393, 00:45 صبح
گفتم توی نت پد نمیشه. یعنی چنین امکانی نداره.

son_of_sun95
جمعه 16 خرداد 1393, 00:52 صبح
بازم ممنون...واقعا تو دنیای بزرگ برنامه نویسی چیزی به اسم "نمیشه" هم داریم؟:متفکر::لبخند:
به هر حال باید یه راه حلی باشه که بشه این تغییراتو به فایل تکست نوتپد انتقال داد...
بازم اگه راه حلی به ذهنتون رسید ممنون میشم راهنماییم کنید...باتشکر

aliagamon
جمعه 16 خرداد 1393, 12:40 عصر
بله نمیشه هم داریم ... کاری که شما میخوای مثل اینه بگی ماشین حساب ویندوز چرا فایل matlab منو باز نمیکنه ..... مگه نمیشه هم داریم ؟ ....
نوتپد درواقع تنظیمات فونتش مربوط به خودشه یعنی شما نمیتونید این اطلاعات رو انتقال بدین با فایلتون مگر اینکه از وردپد استفاده کنید ...
برای مثال شما تو نوت پدتون از منوی Format فونت برنامه رو عوض کنید ... میبینید که دیگه هر فایلی باز کنید با تنظیمات جدید شما نمایش داده میشه ....

son_of_sun95
جمعه 16 خرداد 1393, 16:36 عصر
درسته حرفتون...ممنون...
کدی واسه سی شارپ هست که به عنوان مثال مسیر یک فایل نوتپدو بهش داد و فونتشو به دلخواه تغییر داد...منظورم اینه با سی شارپ میشه به کدهای اصلی نوتپد ویرایش شده ی ویندوز دست پیدا کرد و فونتشو تغییر داد؟

aliagamon
جمعه 16 خرداد 1393, 18:40 عصر
از طریق رجستری باید فونت ست کنید ....
ادرسش اینه : HKEY_CURRENT_USER\Software\Microsoft\Notepad (کلا بدونید دیگه تنظیمات هر برنامه ای مخصوصا برنامه های خود ویندوز تو رجستری هستن)
باید lfFaceName رو تغییر بدین ... اما خیلی براتون درد و سر داره کلا چرا از وردپد استفاده نمیکنی ؟
خب برای کار با رجستری اینجا برین ... :http://www.codeproject.com/Articles/3389/Read-write-and-delete-from-registry-with-C

son_of_sun95
جمعه 16 خرداد 1393, 22:16 عصر
ممنون دوست خوبم...درست میگی کار خیلی سخت شد...منم که جوجه برنامه نویسم فعلا...
راستش پروژه پایان ترممون نوتپده(ورد نیست) که همه چیزشو درست کردم البته به جز پرینتش؛ این مشکل انتقال فونت هم خیلی رو مخمه که اصلا به اسم پروژه توهین میشه وقتی فنتش انتقال داده نشه...:افسرده::قهقهه:
راه حلی واسه پرینت دارین که ساده باشه؟