دوستان دمه عیدی گفتم یکم بهتون حال داده باشم و یک سورس نسبتا خفن رو بهتون بدم و برم پی زندگیم :دی
خب دوستان قطعا همتون ساختن مولتی پنل رو یاد دارید و میتونید خیلی راحت بسازیدش به اندازه N پنل ولی خب این N پنل طبیعتا یکسری اجزا داخلش هست که نیاز به کنترل کردن داره و دوست دارید با کلیک رو هر آیتم یک کار متفاوت انجام بدید
خب این کار به همین سادگی نمیشه انجام داد.یعنی سادس ولی شاید یکم حالتونو بگیره :دی.
خب برای کنترل کردن اشیا ما از رویداد اون شی استفاده میکنیم و مثلا ما 100تا Button داریم و یک رویداد براشون به اسم btn_Click تعریف کردیم که طبق تگ و سندر اینجا عمل میکنیم ( استاندارد).خب حالا اومدیم ما توی مولتی پنل به جزء دکمه یک شی دیگه مثل CheckBox یا SeekBar داشتیم.خب برای اینکه بتونیم اینو کنترل کنیم باید رویداد براش بنویسیم ؟ حالا رویداد هم بنویسیم ولی من دوست دارم با کلیک روی دکمه چک باکسم یا سیک بارک تغییر کنه.برای اینکار شما توی رویداد btn_Click نمیتونید اینجوری بنویسید :
Sub btn_Click
Dim MyBtn As Button
MyBtn = Sender
''''''''''
Dim MyCheck As CheckBox
MyCheck.Checked = True
End Sub
اینجور بگم که به این حالت نمیشه.خب چطور بتونیم یک ویو رو به وسیله یک ویو دیگه در مولتی پنل کنترل کنیم؟
چطور بتونیم بین اشیایی که به صورت داینامیک یا پویا ساخته شده پیمایش کنیم ؟
به این صورت که شما به وسیله تابع GetAllViewsRecursive مربوط به اکتویتی میتونید تمامی اشیا رو بگیرید و با استفاده از شرط های مناسب کارتون رو انجام بدید.
ببینید کد دکممون به چه شکله :
Sub btn_Click
Dim Mybtn As Button
Mybtn = Sender
GetTag = Mybtn.Tag
Dim Cur As Cursor
Cur = MyBank.ExecQuery("SELECT * FROM Dynamic WHERE id="&Mybtn.Tag)
Cur.Position = 0
For Each v As View In Activity.GetAllViewsRecursive
If v Is CheckBox Then
Dim Check As CheckBox = v
If Check.Tag = GetTag Then
Check.Checked = Not(Check.Checked)
End If
End If
Next
End Sub
خب طرز عمل ساخت مولتی پنلمون طبق دیتابیس هست و تگ تمامی اشیا آیدی هر رکورد هستش یعنی :
1
2
3
.
.
n
کد بالا چه کاری انجام میده ؟
میاد دکمه ای که کلیک میشه رو تگش رو میزاره توی آیدی دیتابیس و اطلاعات همون ردیف دیتابیس رو میشه گرفت ولی ما اینجا اطلاعاتی نمیگیریم.طبق مثال با چک باکس.اما با سیک بار میتونیم از دیتابیس برای Value اون اطلاعاتی گرفت.
خب بعد کلیک میاد تمامی اجزای اکتویتی رو میگیره و شرط قرار میدیم که اگه ویو مورد نظر چک باکس هستش و اگه تگ مورد نظر ما هستش بیاد این عملو انجام بده :
Check.Checked = Not(Check.Checked)
اگه تیک خورده باشع تیکش برداشته میشه و بالعکس.
خب از همین جا بگم غضه نخورید سورس رو واستون قرار میدم.
خب اگه خدا قسمت کنه یک اموزش تصویری از این مدلای خفن رو واسه سیک بار که رو دکمه بزنی و هر سییک بار واسه خودش یک مقداری رو پیشروی کنه.
اینم عیدی من به شما
(نکته : بنده از دیتابیس یک برنامه دیگه استفاده کردم که ستون های اضافی داره اصلا به مغزتون فشار نیارید هیچ جای برنامه بکار برده نشده و نمیشه :دی )
مولتی پنل و کنترل ابزار های آن
در ســـورس کـــدهـا
ارسال شده در
رمز فایل چنده؟؟