PDA

View Full Version : استفاده از RTF



Coda2008
جمعه 20 اردیبهشت 1387, 15:07 عصر
با سلام،
من در برنامم نیاز دارم از RTF برای گرفتن اطلاعات از یک فرم استفاده کنم ( یک فرم خاص)
در برنام از ComponentOne برا print استفاده میکنم و چون C1Print RTF قبول میکنه اگر من
بتونم Syntax مربوط به چند ستون داشتن در بک سطرو یاد بگیرم ، مشکلم حل میشه
من نتونستم مثال تو این زمینه پیدا کنم. تنها reference از مایکروسافت هست (RTF Specifications) اونم فقط دستورات و نوشته بدون دادن یک مثال ...
در ضمن از من نپرسید که چرا این روش ، دستور از طرف رییس هست :لبخند:
من تا حالا از RTF استفاده نکردم. ( حتی یک مثال ساده که نشون بده در یک سطر 3 تا ستون داشته باشیم خیلی به من کمک خواهد کرد)
با تشکر

hdv212
جمعه 20 اردیبهشت 1387, 15:34 عصر
اینطوری استفاده کردن به دردت نمیخوره ؟ :

StringBuilder sb = new StringBuilder();
sb.AppendLine(string.Format("ID\t\tName\t\tFamily"));
sb.AppendLine("----------------------------------------------------------------------------------------");

sb.AppendLine(string.Format("1\t\tHasan\t\tMusavi"));
sb.AppendLine(string.Format("2\t\tAli\t\tAlikhani"));
sb.AppendLine(string.Format("3\t\tAzita\t\tBaghi"));
this.richTextBox1.Text = sb.ToString();

subsub
پنج شنبه 21 شهریور 1387, 23:13 عصر
چطوری میشه رنگ رو با RTF تغییر داد؟

من که از متن انگلیسی مایکروسافت چیزی نفهمیدم!

jaza_sa
پنج شنبه 21 شهریور 1387, 23:25 عصر
چطوری میشه رنگ رو با RTF تغییر داد؟

من که از متن انگلیسی مایکروسافت چیزی نفهمیدم!

برای تغییر رنگ متن انتخاب شده در ویرایشگر (RichTextBox) از این کد استفاده میکنند :

richTextBox1.SelectionColor = Color.Yellow;

subsub
پنج شنبه 21 شهریور 1387, 23:38 عصر
برای تغییر رنگ متن انتخاب شده در ویرایشگر (RichTextBox) از این کد استفاده میکنند :

richTextBox1.SelectionColor = Color.Yellow;

این روش تنها برای تغییر رنگ متن انتخاب شده و یا متنی که در حال تایپ کردن هستید کاربرد داره.

ولی قسمتهایی از متنی رو می‌خوام تغییر رنگ بدم که برخی قسمت‌هاش قبلاً تایپ شده و برخی قسمت‌هاش قراره تایپ بشه.

البته میشه متن مورد نظر رو ابتدا با متد Select انتخاب کرد و بعد رنگش رو تغییر داد ولی در این صورت سرعت کار پایین میاد همچنین برای متن‌های در حال تایپ، پرش متن داریم. (چون دائماً قسمتی از متن Select و unSelect میشه، متن چشمک می‌زنه!!!)

jaza_sa
جمعه 22 شهریور 1387, 00:15 صبح
این روش تنها برای تغییر رنگ متن انتخاب شده و یا متنی که در حال تایپ کردن هستید کاربرد داره.

ولی قسمتهایی از متنی رو می‌خوام تغییر رنگ بدم که برخی قسمت‌هاش قبلاً تایپ شده و برخی قسمت‌هاش قراره تایپ بشه.

البته میشه متن مورد نظر رو ابتدا با متد Select انتخاب کرد و بعد رنگش رو تغییر داد ولی در این صورت سرعت کار پایین میاد همچنین برای متن‌های در حال تایپ، پرش متن داریم. (چون دائماً قسمتی از متن Select و unSelect میشه، متن چشمک می‌زنه!!!)
برای اینکار من از این روش استفاده میکنم
یعنی بعد از کامل شدن متن ، با استفاده از دکمه ای ، قسمت های دلخواه متن رو Select میکنم و رنگش رو تغیر میدم ،
با این کنترل (RichTextBox) من روش دیگه ای سراغ ندارم ، شاید باید سراغ کنترل های دیگه از شرکت های دیگه بریم !!!
نمیدونم !!!
اگر کسی در این زمینه اطلاعاتی داره ، راهنمایی کنه !!!

subsub
جمعه 22 شهریور 1387, 01:04 صبح
برای اینکار من از این روش استفاده میکنم
یعنی بعد از کامل شدن متن ، با استفاده از دکمه ای ، قسمت های دلخواه متن رو Select میکنم و رنگش رو تغیر میدم ،
با این کنترل (RichTextBox) من روش دیگه ای سراغ ندارم ، شاید باید سراغ کنترل های دیگه از شرکت های دیگه بریم !!!
نمیدونم !!!
اگر کسی در این زمینه اطلاعاتی داره ، راهنمایی کنه !!!

خوب من که خودم اول گفتم باید با RTF این کار رو کرد که من منبع فارسی پیدا نکردم.

shr6557
جمعه 22 شهریور 1387, 01:46 صبح
من شاید منظورت رو درست نفهمیده باشم ولی اگه قصد داری رنگ متنی که قرار تایپ بشه رو مشخص کنی کافی کد زیر رو بنویسی


RichTextBox.SelectionColor = Color.Blue
این کد در صورتی که تو متنی رو انتخاب نکرده باشی باعث می شه رنگ متنی که در آینده تایپ خواهی کرد (به شرطی که عوض نکنی به طرق دیگه) آبی بشه

subsub
جمعه 22 شهریور 1387, 09:59 صبح
من شاید منظورت رو درست نفهمیده باشم ولی اگه قصد داری رنگ متنی که قرار تایپ بشه رو مشخص کنی کافی کد زیر رو بنویسی


RichTextBox.SelectionColor = Color.Blue
این کد در صورتی که تو متنی رو انتخاب نکرده باشی باعث می شه رنگ متنی که در آینده تایپ خواهی کرد (به شرطی که عوض نکنی به طرق دیگه) آبی بشه

دقیقاً نگرفتی!!!!:لبخند:

تمام مطالبی که دوستان گفتند رو خودم می‌دونم. روش شما تنها برای مطالب آینده خوبه نه برای مطالب گذشته.

درضمن من این رو برای یک ویرایشگر برای یک سیستم حروفچینی می‌خواستم که تقریباً خودش شبیه به یک زبان برنامه‌نویسی هست.

amir-haghighi
جمعه 22 شهریور 1387, 15:09 عصر
به ياد او::

منم همين مشكلي رو كه دوستمون گفتند رو دارم من از روش زير استفاده ميكردم.

در رويداد keypress مربوط به ريچ تكست باكس يك آرايه گذاشته بودم و يك سري كلمات رو بهش معرفي كرده بودم مثل if else if ,function و....

بعد دو تا حلقه تكرار تو در تو گذاشته بودم كه هر وقت كلمهاي تايپ ميشد بررسي ميكرد كه آيا اون كلمه جز آرايه هست يا نه؟

اگه جز كلمات آرايه بود بايد رانگش عوض ميشد.به كمك متد indexof و substring ابتدا و انتهاي كلمه رو مشخص ميكردم و سپس به كمك متد select اون رو انتخاب ميكردم و به طريقي كه در بالا گفه شده رنگش رو عوض ميكردم.اما دو تا مشكل بزرگ داشت كه نتونستم از پسش بر بيام ::

1:با انجام اين كار كرسر موس به ابتداي كلمه بر ميگشت و ديگه جلو نميرفت!!!(حتي در صورتي كه از متد deselect استفاده ميكردم.)

2: بعد از اون اگه هر كلمه اي رو تايپ ميكردم با همون رنگ مثلا آبي نمايش داده ميشد.

amir-haghighi
جمعه 22 شهریور 1387, 15:25 عصر
به ياد او::

با اينكه ميدونم همه دوستان خوشون حتما اين لينك رو ميبينند اما ::



http://www.google.com/search?q=rtf+c%23.net&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

subsub
شنبه 23 شهریور 1387, 21:03 عصر
به ياد او::

منم همين مشكلي رو كه دوستمون گفتند رو دارم من از روش زير استفاده ميكردم.

در رويداد keypress مربوط به ريچ تكست باكس يك آرايه گذاشته بودم و يك سري كلمات رو بهش معرفي كرده بودم مثل if else if ,function و....

بعد دو تا حلقه تكرار تو در تو گذاشته بودم كه هر وقت كلمهاي تايپ ميشد بررسي ميكرد كه آيا اون كلمه جز آرايه هست يا نه؟

اگه جز كلمات آرايه بود بايد رانگش عوض ميشد.به كمك متد indexof و substring ابتدا و انتهاي كلمه رو مشخص ميكردم و سپس به كمك متد select اون رو انتخاب ميكردم و به طريقي كه در بالا گفه شده رنگش رو عوض ميكردم.اما دو تا مشكل بزرگ داشت كه نتونستم از پسش بر بيام ::

1:با انجام اين كار كرسر موس به ابتداي كلمه بر ميگشت و ديگه جلو نميرفت!!!(حتي در صورتي كه از متد deselect استفاده ميكردم.)

2: بعد از اون اگه هر كلمه اي رو تايپ ميكردم با همون رنگ مثلا آبي نمايش داده ميشد.
میتونی قبل از تغییرات رنگ، خاصیت SelectionStart رو در یک متغیر قرار بدی و پس از اعمال تغییرات‍، دوباره خاصیت SelectionStart رو برابر متغیر قرار بدی. و همچنین قبل از اعمال تغییرات رنگ، SelectionColor رو در یک شیء Color قرار بدی و بعد از اعمال تغییرات جای اونها رو عوض کنی.

مشکل اینجاست که هم سرعت کار پایین میاد و هم متن ‍RichTextBox چشمک می‌زنه.

بهترین کار استفاده از RTF هست که هیچ منبع فارسی در اختیار نیست!