PDA

View Full Version : جلوگیری از خروج یک کنترل مثل لیبل از کنترل panel



barbodsoft.com
چهارشنبه 22 اردیبهشت 1389, 18:36 عصر
سلام دوستان
من روی فرم خودم یک panel گذاشتم و داخل اون تعدادی کنترل دیگر از جمله label قرار دادم و از طریق کد نویسی که کردم کاربر قادر خواهد بود که کنترلهای داخل panel رو جابجا کنه. ولی نمی خوام کنترلهای داخلش از محدوده panel از محدوده panel خارج بشن.
در ضمن از اونجای که مکان و اندازه panel توسط کاربر قابل تغییر هست نمی تونم از لوکیشن و اندازه اولیه panel به عنوان محدودیت استفاده کنم.

لطفا راهنمایی بفرمایید. ممنون



با راهنمایی دوست مون iman_me حل شد
نتیجه را در پست 3 ببینید

iman_me
چهارشنبه 22 اردیبهشت 1389, 19:52 عصر
خوب لازم نیست از اندازه اولیه استفاده کنی مثلا بنویس
label1.left=me.left
البته این مثال بود شما می تونی از خاصیت ها استفاده کنی

barbodsoft.com
چهارشنبه 22 اردیبهشت 1389, 20:45 عصر
خوب لازم نیست از اندازه اولیه استفاده کنی مثلا بنویس
label1.left=me.left
البته این مثال بود شما می تونی از خاصیت ها استفاده کنی

سلام
ممنون دوست عزیز
شاید اگه یک کم بیشتر فکر می کردم نیازی به این تاپیک نبود. به هر حال من این کد رو نوشتم برای جابجای کنترل لیبل داخل کنترل panel به نحوی که از کنترل panel خارج نشه. اینجا می زارم تا دوستانی که مشکل مشابه دارند بتونن از اون استفاده کنن.



Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If order = "BtnL" Then
If LblNameControl.Location.X <> 0 Then LblNameControl.Left -= 1
ElseIf order = "BtnDown" Then
If LblNameControl.Top < (Panel1.Top + Panel1.Height) - 12 _
Then LblNameControl.Top += 1
ElseIf order = "BtnUp" Then
If LblNameControl.Top > Panel1.Top Then LblNameControl.Top -= 1
ElseIf order = "BtnR" Then
If (Panel1.Left + Panel1.Width) > (LblNameControl.Left + LblNameControl.Width) Then LblNameControl.Left += 1
End If
End Sub
Private Sub BtnL_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles BtnL.MouseDown
order = "BtnL"
Timer1.Enabled = True
End Sub
Private Sub BtnL_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles BtnL.MouseUp
Timer1.Enabled = False
End Sub