PDA

View Full Version : سوال: چگونه اندازه خط در RichTextBox رو بدست بیارم؟



subsub
دوشنبه 25 شهریور 1387, 20:59 عصر
با سلام

مجبور هستم که در یک پروژه، ماکزیمم تعداد کاراکترهایی که می‌تونه در یک خط از RichTextBox قرار بگیره رو بدست بیارم.

خوب راه‌حل من این بود که WordWrap اون RichTextBox رو بر روی True قرار بدم و همین طور کاراکتر به اون اضافه کنم تا زمانیکه تعداد خطوط تغییر کنه. اما از طریق کدنویسی، وقتی متن رو اضافه می‌کنی، تعداد خط‌ها تغییر نمی‌کنه!!! در صورتی که وقتی کاربر دکمه‌های صفحه کلید رو بزنه، تازه RichTextBox یادش می‌افته که باید تعداد خطوط رو تغییر بده!

راه‌حل دیگه‌ای هم بود که WordWrap رو false کنم و مانند راه‌حل قبل، کاراکتر به RichTextBox اضافه کنم تا رویه HScroll فراخوانی بشه. اما در حالت کدنویسی بازهم این رویه فراخوانی نمی‌شود و در نتیجه این راه نیز به بن بست می‌رسد!

راه‌حل بعدی این هست که اندازه ابعاد یک کاراکتر را با فونتی و پوینتی برابر با فونت و پوینت RichTextBox رو بدست بیاریم و عرض RichTextBox رو بر این عدد تقسیم کنیم و سپس جزء صحیحش رو حساب کنیم.

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

پیشنهاد دوستان چیه؟

shsecretz
سه شنبه 09 مهر 1387, 08:01 صبح
آیا شما کدهای مربوط به آوردن فیلم .صدا.فایل Pdf .را درون RichTextBox میدونید که چطور باید نوشت ؟

SMRAH1
چهارشنبه 10 مهر 1387, 02:42 صبح
دوست من سئوالت یک مشکل پایه ای داره.
با توجه به اینکه توی فونت ها،ابعاد کارکتر ها متفاوت است (یعنی عرضی که کاراکتر i و کاراکتر W می گیره متفاوت است)،شما چطور می خواهی تعداد کاراکتر ها رو پیدا کنید.مثلا اگر کاراکتر i پرکنید باشه 20 تا ولی برای کاراکتر w باشه 9 ....
البته یک نوع خاص فونت (که الان اسمش یادم نیست) دارای عرض یکسان برای تمام کاراکتر ها است (مثال معروفش همان Terminal است).البته اگر از اینو نوع فونت ها استفاده کنی،سئوالت منطقی میشه(معمولا به دلیل عدم زیبایی خیلی کاربرد ندارند).
در هر حال یک نگاهی به کتد ها و فیلدهای Font کنترل مورد نظر بنداز.خاصیت های Size و SizeInPoint اون شاید بدرد بخوره.

در ضمن اگر هدف اصلیت رو بنویسی شاید راه حل های دیگر (به جایبدست آوردن تعداد کاراکترهای یک خط) هم باشد.

موفق باشی