PDA

View Full Version : سوال: چرا از راست به چپ برای Label کار نمی کند



pouyansaraf
یک شنبه 16 آبان 1389, 14:47 عصر
با سلام.
با وجود اینکه RigthToLeft و TextAlign لیبل را درست میکنم باز هم برای نوشتن جملات فارسی مشکل دارم و مجبورم از TextBox استفاده کنم .
چرا Label راست به چپ نمیشه؟

ali_najari
یک شنبه 16 آبان 1389, 14:59 عصر
دوست عزيز مشكلت چيه دقيقا؟ ميخواي چيكار كني؟

pouyansaraf
یک شنبه 16 آبان 1389, 15:08 عصر
مثلا نگاه کنید اگر کنترلی دیگر سمت راست Label باشد روی آن می آید
مانند شکل زیر
http://barnamenevis.org/forum/attachment.php?attachmentid=59804&stc=1&d=1289131572

hooooman
یک شنبه 16 آبان 1389, 15:48 عصر
سلام
احتمالا اين مشكل شما به AutoSize كنترل Label شما مربوط ميشه

pouyansaraf
یک شنبه 16 آبان 1389, 16:06 عصر
مرسی
عالی بود.
حالا چه ربطی به autosize داشت خدا میدونه.
ممنون از آقا هومن از کرمانشاه

ali_najari
یک شنبه 16 آبان 1389, 19:27 عصر
مرسی
عالی بود.
حالا چه ربطی به autosize داشت خدا میدونه.
ممنون از آقا هومن از کرمانشاه

دوست عزیز با اینکه شما Autosize رو False کردید ولی باز اون کاری رو نمیکنه که شما میخواید!

من دارم روش کار میکنم که یک Label واستون بنویسم که حتی با خاصیت AutoSize هم دیگه اون مشکل رو نداشته باشید ولی خوب یکم طول میکشه نوشتن و تست کردنش

ali_najari
یک شنبه 16 آبان 1389, 21:51 عصر
دوست عزیز من برات Label ی که گفته بودم رو ورژن اولش رو آماده کردم و امیدوارم که به کارتون بیاد

http://barnamenevis.org/forum/attachment.php?attachmentid=59826&stc=1&d=1289156211

http://barnamenevis.org/forum/attachment.php?attachmentid=59827&stc=1&d=1289156211

این هم سورس ساخت این کامپونت



Public Class SpecialLabel
Inherits System.Windows.Forms.Label
Private _EndPosition As Integer

Sub New()
Me.AutoSize = True
End Sub


Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)

Try

If _EndPosition > 0 Then
MyBase.Location = New Point(_EndPosition - MyBase.Width, MyBase.Location.Y)
End If

Catch ex As Exception
End Try

MyBase.OnPaint(e)
End Sub

Protected Overrides Sub OnLocationChanged(ByVal e As System.EventArgs)
_EndPosition = Bounds.X + Bounds.Width
MyBase.OnLocationChanged(e)
End Sub

Protected Overrides Function GetScaledBounds(ByVal bounds As System.Drawing.Rectangle, ByVal factor As System.Drawing.SizeF, ByVal specified As System.Windows.Forms.BoundsSpecified) As System.Drawing.Rectangle
_EndPosition = bounds.X + bounds.Width
Return MyBase.GetScaledBounds(bounds, factor, specified)
End Function

End Class

pouyansaraf
یک شنبه 16 آبان 1389, 22:35 عصر
مرسی دوستان

علی نجار جون ممنون

ali_najari
دوشنبه 17 آبان 1389, 09:19 صبح
مرسی دوستان

علی نجاري جون ممنون

خواهش ميكنم
اگر مشكلي داشت بگيد تا براتون رفع كنم يا اگر تونستيد از كدها استفاده كنيد كه ديگه حرفي نيست