رفتن به مطلب

تابع تنظیم طول متن لیبل


ctrain

ارسال‌های توصیه شده

سلام دوستان.

لابد دیدین که مثلا اگه یه label دارین متن اون شاید از لیبل بیشتر باشه و بقیش زیر لیبل نمایش داده شه و شما نمیبیننش. اینجوری یه حالت زشتی پیدا میکنه و زیاد جالب نیست. با این تابع شما میتونید هرچقدر متن اضافی اومده رو نمایش ندید و بجاش از سه نقطه (...) استفاده کنین. حتماً این مورد رو در خیلی از برنامه ها دیدین.

خب برای مثال ما یه لیبل داریم :

label1.text = "Matne Toolani"

کافیه این تابع رو به هرجای پروژتون که صلاح دیدین اضافه کنین :

Sub TextCutter(Label As Label) As String
	Dim thetext As String = Label.Text
	Dim strutls As StringUtils
	Dim valueheight As Int = strutls.MeasureMultilineTextHeight(Label,Label.Text)
	If valueheight > Label.Height Then
		Dim strvalue As String = Label.Text
		For jj=1 To 9999
			If valueheight < Label.Height Then
				thetext = strvalue.SubString2(0,strvalue.Length - 3) & " ..."
				Return thetext
				Exit
			Else
				strvalue = strvalue.SubString2(0,strvalue.Length - jj)
				valueheight = strutls.MeasureMultilineTextHeight(Label,strvalue)
			End If
		Next
	Else
		Return thetext
	End If
End Sub

و طبق مثال بالا اینجوری استفاده کنین :

label1.text = TextCutter(label1)

خودش میبینه اگه تو دستگاهی که الان درحال نمایشه متن کامله تغییری نمیده ولی اگه بزرگتر بود کوتاهش میکنه و بجاش سه تا نقطه میذاره. راستی حتماً کتابخانه ی StringUtils رو فعال کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 هفته بعد...
در در 1396/06/29, 22:12:48، ctrain گفته است :

سلام دوستان.

لابد دیدین که مثلا اگه یه label دارین متن اون شاید از لیبل بیشتر باشه و بقیش زیر لیبل نمایش داده شه و شما نمیبیننش. اینجوری یه حالت زشتی پیدا میکنه و زیاد جالب نیست. با این تابع شما میتونید هرچقدر متن اضافی اومده رو نمایش ندید و بجاش از سه نقطه (...) استفاده کنین. حتماً این مورد رو در خیلی از برنامه ها دیدین.

خب برای مثال ما یه لیبل داریم :


label1.text = "Matne Toolani"

کافیه این تابع رو به هرجای پروژتون که صلاح دیدین اضافه کنین :


Sub TextCutter(Label As Label) As String
	Dim thetext As String = Label.Text
	Dim strutls As StringUtils
	Dim valueheight As Int = strutls.MeasureMultilineTextHeight(Label,Label.Text)
	If valueheight > Label.Height Then
		Dim strvalue As String = Label.Text
		For jj=1 To 9999
			If valueheight < Label.Height Then
				thetext = strvalue.SubString2(0,strvalue.Length - 3) & " ..."
				Return thetext
				Exit
			Else
				strvalue = strvalue.SubString2(0,strvalue.Length - jj)
				valueheight = strutls.MeasureMultilineTextHeight(Label,strvalue)
			End If
		Next
	Else
		Return thetext
	End If
End Sub

و طبق مثال بالا اینجوری استفاده کنین :


label1.text = TextCutter(label1)

خودش میبینه اگه تو دستگاهی که الان درحال نمایشه متن کامله تغییری نمیده ولی اگه بزرگتر بود کوتاهش میکنه و بجاش سه تا نقطه میذاره. راستی حتماً کتابخانه ی StringUtils رو فعال کنید.

خسته نباشی دلاور

با یه خط کد میتونستی این کارو انجام بدی

 

lblUser.Text = STRING.SubString2(0,9) & "..."

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...