PDA

View Full Version : مبتدی: Sort کردن پنل ها ؟!!!



ali reza mansoori 2
شنبه 30 اردیبهشت 1391, 19:29 عصر
سلام دوستان
چهار تا Panel دارم که داخل هر کدوم یه TextBox هستش که مقدار عددی دریافت میکنه
حالا میخوام این چهار تا پنل رو داخل یه پنل دیگه به صورت Dock Top بچینم و بر اساس مقادیر داخل هر TextBox اونا رو Sort کنم
برنامه ضمیمه بهتر میتونه به درک موضوع کمک کنه

xxnagin
شنبه 30 اردیبهشت 1391, 20:15 عصر
سلام
نمیدونم منظورت چیه فکرکنم منظورتون اینه با استفاده از کلید tab به textbox بعدی برید
شما با استفاده از با راست کلیک روی panel ها گزینه send to back استفاده کنید
اینم بگم قبلش همه panel ها رو به صورت Dock Top بچین بعد از گزینه send to back استفاده کن
مثل عکس
در غیر این صورت سوال را واضع توضیح دهید
http://xnagin.persiangig.com/image/uuuuu.jpg

ali reza mansoori 2
یک شنبه 31 اردیبهشت 1391, 08:08 صبح
خیلی ممنون از دوست عزیزمون
الان شما همه پنل ها رو چیدید و مرتب هم هستش تا اینجا کار درسته
حالا میخوام وقتی عدد ها تغییر کرد نحوه چیدمان هم تغییر کنه
یعنی اگر بجای 1 داخل تکس اول بنویسیم 5 و روی OK کلیک کنیم پنل اول بیاد پایین دیگر پنل ها

ali reza mansoori 2
دوشنبه 01 خرداد 1391, 19:50 عصر
دوستان نظری ندارید

فرید نجفلو
دوشنبه 01 خرداد 1391, 20:42 عصر
سلام
تو فرم پنل های کناری رو بندازید تو پنل اصلی و Dock اونها رو به Top تغییر بدید

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

Public Class Form1
Private Sub SortPanels()
Dim pnlList As New SortedList(Of String, Panel)
pnlList.Add(TextBox1.Text & Panel2.Name, Panel2)
pnlList.Add(TextBox2.Text & Panel3.Name, Panel3)
pnlList.Add(TextBox3.Text & Panel4.Name, Panel4)
pnlList.Add(TextBox4.Text & Panel5.Name, Panel5)
For Each pnl As Panel In pnlList.Values
pnl.BringToFront()
Next
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
SortPanels()
End Sub
End Class

ali reza mansoori 2
دوشنبه 01 خرداد 1391, 21:38 عصر
خیلی ممنون آقا فرید
اگر میشه یه توضیح مختصر درباره کدی که نوشتید بدید

فرید نجفلو
دوشنبه 01 خرداد 1391, 22:58 عصر
سلام
توضیح خاصی نداره من از SortedList استفاده کردم که برحسب Key می یاد Value ها رو مرتب می کنه
اینجا هم چون برحسب تکست باکس ها مرتب می شه من متن اون رو به عنوان Key میدم
یه نکته هست که من متن تکست باکس ها رو با نام پنل جمع کردم واسه این که ممکنه مت تسکت باکس ها برابر داده بشن ولی اگه تنها اونو بفرستیم مقدار Key تکراری خطا ایجاد می کنه اما چون نام پنل ها نمی تونه تکراری باشه وقتی این دو تا باهم جمع بشن یک رشته منفرد ایجاد می شه
و به این صورت کنترل ها ابتدا برحسب تکست باکس ها ود صورت برابر بودن با نام مرتب می شن

با BringToFront و SendToBack هم پنل ها رو می شه به ابتدا و انتها برد