رفتن به مطلب
  • 0

ویرایش متن


montazeranmahdi

سوال

باسلام خدمت اساتید گرامی

یک لیبل توی صفحه دارم که یک متن طولانی توش قرار داره ، میخوام این متن رو جوری تنظیم کنم که بتونم مشخص کنم که در هر سطر چند کلمه از این متن قرار بگیره .

مثلا در سطر اول 10 کلمه از متن قرار بگیره

در سطر دوم 11 کلمه

در سطر سوم 8 کلمه

در سطر چهارم  13 کلمه

..

..

..

در سطر دهم 12کلمه

 

ممنون میشم کمکم کنید

تشکر:53:

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

5 پاسخ به این سوال تاکنون داده شده است

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

یه کاستوم لیست ویو میسازید و تو هر ایتمش یه لیبل میذارید.

با کد بالا که گذاشتم، کلمه ها رو جدا میکنید و تو یه متغیر آرایه میریزید.

قبلش تعداد آیتم هر سطر رو داخل یه فیلد از دیتابیس قرار بدید.

داخل حلقه فور برای لود در کاستوم لیست ویو به این صورت عمل کنید:

Dim cur As Cursor = Sql1.ExecQuery("SELECT ....")'دریافت تعداد خطوط و متن کل
cur.Position = 0
Dim str() As String = Regex.Split(" ", c.GetString("متن کل"))
Dim Checker As Int = 0
Dim Matn As String

For i = 0 To cur.GetString("نعداد خطوط")
	Dim c As Cursor = Sql1.ExecQuery("SELECT .....")'تعداد کلمات
	c.Position = i
	
	For j = Checker To Checker + c.GetInt("تعداد کلمه") - 1
    	Matn = Matn & str(j) & " "
		
		If c.GetInt("تعداد کلمه") = (j + 1) Then
        	Checker = c.GetInt("تعداد کلمه")
			Exit
        End If
    Next
    
    Lbl1.Text = Matn
Next

 

خط اول میایم تعداد خطوط و متن کل رو از دیتابیس میگیریم و تو خط 3، کلمه به کلمه جدا میکنیم و تو یه متغیر از نوع آرایه میریزیم.

حلقه فور i، مربوط به آیتم های کاستوم لیست ویو هست.

در این حلقه، میایم بر اساس i و خط مربوطه، تعداد کلمات مربوط به اون خط رو از دیتابیس میگیریم.

{یه متغیر Checker هم داریم که index کلمات داخل آرایه رو تو خودش ذخیره میکنه}

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

در نهایت میایم چک میکنیم که آیا در آخرین حلقه هستیم یا نه؟ اگر بود، میایم یکی بیشتر از index آخرین کلمه رو تو متغیر چکر میریزیم و تو خط بعدی ازش استفاده میکنیم.

 

و در خط آخر هم،متن رو به اون لیبل میدیم. (سایزش رو هم همونجا مشخص میکنیم)

 

من این کدها رو امتحان نکردم و همین جا نوشتمش. ممکنه اشتباه باشه(بعید میدونم. چون از لحاظ منطقی، باید درست کار کنه) و یا حتی خطای syntax داشته باشه(اینو میتونید درست کنید).

 

سؤالی بود در خدمتم :53::53::53::53:

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

سلام

فک نکم بتونید این کار رو تو یه لیبل انجام بدید. تو سایز های مختلف گوشی، سطرها بهم میریزن.

یا باید از لیست ویو استفاده کنید یا کاستوم لیست ویو. به این صورت که داخل کاستوم لیست ویو، یه لیبل بذارید و سایز متن اون رو بر اساس متن، تغییر بدید.

با کتابخونه ی زیر میتونید این کار رو انجام بدید:

 

با کد زیر هم میتونید متن رو کلمه به کلمه جدا کنید و داخل آرایه بریزید:

Dim s() As String = Regex.Split(" ", YOUR_TEXT)

 

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

در 26 دقیقه قبل، Salar82 گفته است :

سلام

فک نکم بتونید این کار رو تو یه لیبل انجام بدید. تو سایز های مختلف گوشی، سطرها بهم میریزن.

یا باید از لیست ویو استفاده کنید یا کاستوم لیست ویو. به این صورت که داخل کاستوم لیست ویو، یه لیبل بذارید و سایز متن اون رو بر اساس متن، تغییر بدید.

با کتابخونه ی زیر میتونید این کار رو انجام بدید:

 

با کد زیر هم میتونید متن رو کلمه به کلمه جدا کنید و داخل آرایه بریزید:


Dim s() As String = Regex.Split(" ", YOUR_TEXT)

 

عذرمیخوام بنظر درست عرض نکردم ، من اصلا با سایز متن کاری ندارم

با تعداد کلماتی که باید در هر سطر باشن کار دارم

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

سایز متن رو که ثابت بذارید، اگه متنتون زیاد باشه، میره خط بعدی و میشه دو خط :) 

از نظر من تنها راهش هم اینه که سایز رو بر اساس اندازه لیبل و متن تنظیم کنید تا این مشکل رفع شه.

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

در 1 دقیقه قبل، Salar82 گفته است :

سایز متن رو که ثابت بذارید، اگه متنتون زیاد باشه، میره خط بعدی و میشه دو خط :) 

از نظر من تنها راهش هم اینه که سایز رو بر اساس اندازه لیبل و متن تنظیم کنید تا این مشکل رفع شه.

شما فرض بفرمایید که یه متن دارم به این شکل هست (30 تا کلمه "6") :

666666666666666666666666666666

 

حالا میخوام این متن توی 6 سطر قرار بگیره

سطر اول 5 تا 6 توش باشه

سطر دوم 7 تا 6 توش باشه

سطر سوم 9 تا 6توش باشه

سطر چهارم 7 تا6 توش باشه

سطر پنجم2 تا 6توش باشه

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

بایگانی شده

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

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

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