PDA

View Full Version : سوال: محدود کردن طول Label



daniyaltjm
دوشنبه 28 تیر 1395, 23:40 عصر
سلام من می خوام مثل یک تکست باکس که با خاصیت MaxLength میشه حداکثر طو رو مشخص کرد، برای لیبل هم مشخص کنم ولی همچین خاصیتی نداره؟

آقای الیان
سه شنبه 29 تیر 1395, 00:29 صبح
دوست عزیز , Label تنها برای یک موضوع ساخته شده و اون هم دادن دادن توضیحات درباره یک کنترل یا دادن Target به TextBox رو به رو آن هست که در WPF بکار میرده . معمولا استفاده از Label برای مواقعی که نیاز به نشان دادن به صورت Dynamic هست درست نیست و اگر سورس اسمبلیش رو ببینید متوجه میشید که برای اینکار بلذات ساخته نشده. پیشنهاد می کنم از TextBox استفاده کنید و آن را ReadOnly کنید . یا از TextBlock استفاده کنید.
البته شاید این هم بدردتون بخوره : https://msdn.microsoft.com/en-us/library/system.windows.forms.control.defaultmaximumsize.as px

daniyaltjm
سه شنبه 29 تیر 1395, 11:39 صبح
دوست عزیز , Label تنها برای یک موضوع ساخته شده و اون هم دادن دادن توضیحات درباره یک کنترل یا دادن Target به TextBox رو به رو آن هست که در WPF بکار میرده . معمولا استفاده از Label برای مواقعی که نیاز به نشان دادن به صورت Dynamic هست درست نیست و اگر سورس اسمبلیش رو ببینید متوجه میشید که برای اینکار بلذات ساخته نشده. پیشنهاد می کنم از TextBox استفاده کنید و آن را ReadOnly کنید . یا از TextBlock استفاده کنید.
البته شاید این هم بدردتون بخوره : https://msdn.microsoft.com/en-us/library/system.windows.forms.control.defaultmaximumsize.as px

میشه از تکست باکس و خاصیت Read Only استفاده کرد ولی در این حالت میشه نوشته رو باز انتخاب کرد!!! من نمی خوام اینطور باشه، میشه از کلاس تکست باکس ارث بری کرد برای لیبل و از خاصیت MaxLength اون استفاده کرد؟ یا با کد نویسی میشه این کارو کرد؟

daniyaltjm
سه شنبه 29 تیر 1395, 12:40 عصر
سلام من می خوام مثل یک تکست باکس که با خاصیت MaxLength میشه حداکثر طو رو مشخص کرد، برای لیبل هم مشخص کنم ولی همچین خاصیتی نداره؟

با استفاده از این کد در رویداد KeyPress فرم:

if (labelConsole.Text.Length < 25)
{
e.Handled = true;
}

Mahmoud.Afrad
سه شنبه 29 تیر 1395, 16:30 عصر
اگر منظور شما از طول، تعداد کاراکتر هست، لیبل یک کنترل برای نمایش متنی هست که برنامه نویس بهش میده پس این شما هستید که میتونید متنی که در لیبل نشون میدید رو محدود کنید. میتونید از متد Substring متن رو به مقدار مورد نظر جدا کرده در لیبل نمایش بدید.

daniyaltjm
سه شنبه 29 تیر 1395, 19:24 عصر
اگر منظور شما از طول، تعداد کاراکتر هست، لیبل یک کنترل برای نمایش متنی هست که برنامه نویس بهش میده پس این شما هستید که میتونید متنی که در لیبل نشون میدید رو محدود کنید. میتونید از متد Substring متن رو به مقدار مورد نظر جدا کرده در لیبل نمایش بدید.

ممنون من با استفاده از یک بولین این کارو کردم مثلا وقتی روی یک دکمه ماشین حساب کلیک بشه شرط رو بررسی کنه و توی دکمه بک اسپیس دوباره متغیر بولین رو به حالا قبل برگردونه:

if (labelConsole.Text.Length > 25)
{
LimitConsol = true;


}
if (labelConsole.Text == "0" & LimitConsol == false)
{

labelConsole.Text = "";
labelConsole.Text += "1";


}
if (labelConsole.Text != "0" & LimitConsol == false )
{

labelConsole.Text += "1";


}