سلام دوستان
ببخشید چطور میشه تعداد سطر های متن یک لیبل رو تشخیص داد؟
ممنون میشم جواب بدید
سلام دوستان
ببخشید چطور میشه تعداد سطر های متن یک لیبل رو تشخیص داد؟
ممنون میشم جواب بدید
سلام. میتونید از این روش هم استفاده کنید.
var totalNewLine = label1.Text.Split('\n').Length;
ممنونم
ببخشید یه سوال دیگه دارم اینکه میشه اسکرول بار عمودی رو به لیبل متصل کرد که اگه سطر های متن لیبل بیشتر از مقدار تعیین شده بود اسکرول بار از حالت هاید در بیاد و بشه متن لیبل رو بالا و پایین کرد مثل لیست باکس؟
تا جایی که مطلع هستم فکر کنم خود Label این ویژگی را ندارد مگر آنکه خودتان یک کنترل جدید بسازید. البته TextBox این قابلیت رو داره و میتونید از TextBox استفاده کنید. البته احتمالا پیشنهاد شما را باید جهت ایجاد یک کنترل جدید استفاده کنم.
Update History:
https://github.com/CesSolutions/Ces.WinForm.UI/wiki
Nuget Package:
https://www.nuget.org/packages/Ces.WinForm.UI/
Repository:
https://github.com/CesSolutions/Ces.WinForm.UI
البته یک کار دیگه هم میتونید انجام بدید. یک Panel اضافه کنید و ویژگی AutoScroll را برابر true قرار بدید. حالا یک Label به Panel اضافه کنید ولی ویژگی AutoSize برابر true باشه. حالا هر زمان که اندازه Label از اندازه کنترل والد که همان Panel هست بیشتر بشه، Panel به شما یک Scroll نشان میده و میتونید متن Label را براحتی Scroll کنید.
Untitled.png
ممنون کارم راه افتاد
فقط چطور میشه کاری کرد که وقتی هنوز تعداد سطر های متن تکست باکس به نهایت تعداد سطر هایی که تکست باکس میتونه در سایز فعلی نشون بده نرسیده، قابلیت اسکرول بارِ تکست باکس غیر فعال باشه؟؟
آخرین ویرایش به وسیله ُِMohammadSina : چهارشنبه 27 دی 1402 در 16:06 عصر
ممنون کارم راه افتاد
فقط چطور میشه کاری کرد که وقتی هنوز تعداد سطر های متن تکست باکس به نهایت تعداد سطر هایی که تکست باکس میتونه در سایز فعلی نشون بده نرسیده، قابلیت اسکرول بارِ تکست باکس غیر فعال باشه؟؟
// تنظیم تعداد سطرهای قابل نمایش در TextBox
int visibleLines = textBox.ClientSize.Height / textBox.Font.Height;
// بررسی اگر تعداد سطرهای متن تکست باکس به حداکثر تعداد سطرهای قابل نمایش نرسیده است، قابلیت اسکرول بار را غیرفعال میکنیم
if (textBox.Lines.Length < visibleLines)
{
textBox.ScrollBars = ScrollBars.None;
}
else
{
textBox.ScrollBars = ScrollBars.Vertical; // یا هر نوع اسکرول بار دیگری که میخواهید
}
صحیح میفرمائید سپاس
using System;
using System.Windows.Forms;
namespace ScrollBarExample
{
public class Program
{
public static void Main()
{
// ایجاد یک نمونه از کلاس TextBox
TextBox textBox = new TextBox();
// تنظیم متن و تعداد سطرهای متن
textBox.Multiline = true;
textBox.Text = "این یک متن طولانی است که در تکست باکس نمایش داده میشود.";
textBox.ScrollBars = ScrollBars.None; // ابتدا قابلیت اسکرول بار غیرفعال است
// تنظیم تعداد سطرهای قابل نمایش در TextBox
int visibleLines = 3;
textBox.Height = textBox.Font.Height * visibleLines;
// بررسی اگر تعداد سطرهای متن بیشتر از تعداد سطرهای قابل نمایش است، قابلیت اسکرول بار را فعال میکنیم
if (textBox.Lines.Length > visibleLines)
{
textBox.ScrollBars = ScrollBars.Vertical; // یا هر نوع اسکرول بار دیگری که میخواهید
}
// نمایش TextBox در یک فرم ساده
Form form = new Form();
form.Controls.Add(textBox);
Application.Run(form);
}
}
}
سلام مجدد
من از تکست باکس استفاده کردم و اون مشکلم حل شد ولی الان یک مشکل دیگه به وجود اومد:
الان وقتی تکستِ تکست باکس رو برابر با تکست قبلیش به اضافه یه تکسته دیگه به اضافه اینتر(سطر جدید) میکنم، سطر جدید ایجاد نمیشه و تکست جدید بدون فاصله از تکست قبلی نوشته میشه، باید چکار کنم؟
سلام. لطفا کد خودتون را ارسال کنید
اگر درست متوجه منظورتان شده باشم ، با اضافه کردن کاراکتر "\n" به تکست قبلی و سپس اضافه کردن تکست جدید، میتونید سطر جدید را ایجاد کنید
string oldText = "تکست قبلی";
string additionalText = "تکست جدید";
string newText = oldText + "\n" + additionalText;
مشکل این بود که در تکست باکس نمیشه با دستور n\ سطر جدید ایجاد کرد.
من به جوابم رسیدم ولی برای بقیه دوستانی که این سوال را دارند راه حلش رو قرار میدم.
با این روش نمیشه توی متن تکست باکس سطر جدید ایجاد کرد:
string Text1 = "متن اول";
string Text2 = "متن دوم";
textBox1.Text = Text1 + "\n" + Text2;
در این صورت این متن در تکست باکس به صورت زیر در میاد:
متن اولمتن دوم
بجاش باید از این روش برای ایجاد سطر جدید در متن تکست باکس استفاده کرد:
string Text1 = "متن اول";
string Text2 = "متن دوم";
textBox1.Text = Text1 + Environment.NewLine + Text2;
در این صورت متن در تکست باکس به صورت زیر در میاد:
متن اول
متن دوم
آخرین ویرایش به وسیله ُِMohammadSina : جمعه 29 دی 1402 در 20:46 عصر دلیل: کامل کردن
به جای لیبل میتونید از تکست باکس با تغییر در رنگ و غیرفعال کردن قابلیت ویرایش استفاده کنید.
ضمنا ، در هر تاپیک یک سوال بپرسید.