رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


بایگانی شده

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

ctrain

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

پست های پیشنهاد شده

ctrain    38

کاربر رو به رشد

سلام دوستان.

لابد دیدین که مثلا اگه یه 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 رو فعال کنید.

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


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

کاربر نیمه فعال

در در 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) & "..."

 

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


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

×
×
  • جدید...