PDA

View Full Version : کد نوشتن برای شی که در هنگام اجرا برنامه ساخته می شود



akbar3070
یک شنبه 01 اردیبهشت 1392, 22:21 عصر
سلام دوستان
من با دستور dim نام شی as new نوع شی with {خصوصیات}شی در هنگام اجرای برنامه می سازم ، اما می خوام بعد از ساخته شدن شی کاره خاصی رو انجام بده اگه می تونید کمکم کنید !!!
ممنون

hosein320
یک شنبه 01 اردیبهشت 1392, 22:28 عصر
منظورتون از کار خاض چیه دقیقا
مثل رویداد کلیک منظورتونه؟

SHD.NET
یک شنبه 01 اردیبهشت 1392, 22:43 عصر
اگه منظورتون نوشتن رویداد برای اونه، باید اون رو به صورت WithEvents تعریف کنید

akbar3070
یک شنبه 01 اردیبهشت 1392, 22:47 عصر
آره ،منظورم همینه
اما میشه مثال هم بزنید ؟

hosein320
یک شنبه 01 اردیبهشت 1392, 23:00 عصر
این کد برای اضافه کردن کنترل جدیده
Dim SPic As New PictureBox
With SPic
.Image = Image.FromFile(Pic)
.Cursor = Cursors.Hand
.BackColor = Color.Transparent
.SizeMode = PictureBoxSizeMode.AutoSize
.Location = New Point(Xp, Yp)

PanelSmiley.Controls.Add(SPic)

AddHandler SPic.Click, AddressOf spicclick

End With


این کد هم رویداد کلیک اون کنترله
Sub spicclick(ByVal sender As Object, ByVal e As EventArgs)

End Sub
سوالی داشتید در خدمتم
موفق باشید

akbar3070
دوشنبه 02 اردیبهشت 1392, 13:39 عصر
ممنونم دوست عزیز ، اما این جا یه مشکلی هست اونم اینه که کابر شاید ده ها شی picturebox بسازه و هر کدوم از اون ها هم قراره کاره متفاوتی از یکدیگر انجام بدن ، ولی این کد همه رو با یه کد می سازه

parastoo26
دوشنبه 02 اردیبهشت 1392, 14:24 عصر
سلام می خواستم در مورد nestedmaster page در ویژوال بیسک کمکم کنید ممنون می شم .

hosein320
دوشنبه 02 اردیبهشت 1392, 14:32 عصر
شما میتونی براساس اسم براشون شرط بزاری
با این کد اسم کنترل رو بدست میاری و میتونی با شرط گذاشتن کد مورد نظرتون اجرا شه
Dim RRR As picturebox = CType("اسم کنترل", picturebox)

ممنونم دوست عزیز ، اما این جا یه مشکلی هست اونم اینه که کابر شاید ده ها شی picturebox بسازه و هر کدوم از اون ها هم قراره کاره متفاوتی از یکدیگر انجام بدن ، ولی این کد همه رو با یه کد می سازه

akbar3070
دوشنبه 02 اردیبهشت 1392, 14:35 عصر
ممنون منظور رو فهمیدم اما می تونم خواهش کنم یه مثال واضح تر هم بزنید ؟

hosein320
دوشنبه 02 اردیبهشت 1392, 14:43 عصر
شما بگین دقیقا میخوایین چکار کنین

akbar3070
دوشنبه 02 اردیبهشت 1392, 14:50 عصر
من مثلا می خوام فرد با کلیک روی دکمه یه picturebox و یه panel جدید بسازه و وقتی کاربر بعد از ساختن روی picturebox ساخته شده کلیک کرد panel ی که با همون picturebox ساخته رو نشون بده ، و این کار رو شاید باید ده ها picturebox برای ده ها panel مخصوص به خودشون انجام بدن

hosein320
دوشنبه 02 اردیبهشت 1392, 15:02 عصر
پس شما باید یه چیز مشترک تو اون پنل و پیکچر بزارین برای فراخوانی
مثل شماره
و تو قسمت ساخت کنترل هم یه نشونه به انتهای اسم پیکچر و پنلتون اضافه کنین مثل
dim p as new picturebox
p.name="Pic"&i
که متغیر I میتونه هر چیزی باشه
بعد برای فراخوانی هم به این صورت عمل کنین
Dim P As picturebox = CType("Pic", picturebox)
dim NPic as string
Npic = replace(p.name,"pic","")
dim Pa as panel=Ctype("panel" & NPic,panel)
pa.visible=not(pa.visible)


موفق باشید:چشمک:

akbar3070
دوشنبه 02 اردیبهشت 1392, 16:33 عصر
ممنون عزیز ، میشه یکم هم کار این کد هارو شرح بدید ؟

hosein320
دوشنبه 02 اردیبهشت 1392, 20:53 عصر
میتونین تصویر فرمتون رو بزارین
کنترل های پنل و عکس چجوری قرار میگیرن:متفکر:

akbar3070
دوشنبه 02 اردیبهشت 1392, 21:03 عصر
متاسفانه من عکسی از برنامه ام ندارم چون طرح خاصی نداره و نحوی قرار گیری شی ها هم مهم نیست

hosein320
دوشنبه 02 اردیبهشت 1392, 21:12 عصر
عکس ها و پنل ها از هم جدا هستن یا نه:متفکر:

akbar3070
سه شنبه 03 اردیبهشت 1392, 16:30 عصر
آره ، جدا هستن

hosein320
سه شنبه 03 اردیبهشت 1392, 18:21 عصر
خدمت شما
103236
موفق باشید:چشمک:

akbar3070
چهارشنبه 04 اردیبهشت 1392, 10:44 صبح
آقا دست شما درد نکنه ! عالی بود ، مشکلم حل شد !
اما میتونم یه در خواست دیگه هم بکنم در مورد مینیمایز کردن همون panel ها که مثال وقتی کاربر روی button p کلیک کرد یه دکمه ی جدید توی یه panel ثابت ظاهر بشه و panel اصلی visible=false بشه و وقتی روی دکمه ی مینیمایز شده کلیک کرد panel ها به حالت اول برگرده ، اما مشکلم اینجاست که مثالا اگر 5 تا panel مینیمایز شده و کاربر یکی از اون هارو کلا بست دکمه های مینیمایز شده اتوماتیک مرتب بشن ، مثل taskbar ویندوز ؟؟؟؟

hosein320
چهارشنبه 04 اردیبهشت 1392, 17:26 عصر
اگه میتونی یه نمونه کد بزار
درست متوجه نشدم!

nourooz
شنبه 16 شهریور 1392, 16:00 عصر
این کد برای اضافه کردن کنترل جدیده
Dim SPic As New PictureBox
With SPic
.Image = Image.FromFile(Pic)
.Cursor = Cursors.Hand
.BackColor = Color.Transparent
.SizeMode = PictureBoxSizeMode.AutoSize
.Location = New Point(Xp, Yp)

PanelSmiley.Controls.Add(SPic)

AddHandler SPic.Click, AddressOf spicclick

End With


این کد هم رویداد کلیک اون کنترله
Sub spicclick(ByVal sender As Object, ByVal e As EventArgs)

End Sub
سوالی داشتید در خدمتم
موفق باشید

ببخشید تاپیکا اوردم بالا
یه سوال چجوری برای این رویداد مقدار بفرستیم مثلا تو یه حلقه 10 تا دکمه ساختیم حالا میخواهیم در کد هر کدوم یه مقدار متفاوت باشه (مثلا هرکدوم یه صفحه باز کنه)چیکار باید کرد من وقتی مقدار میفرستم خطا میده . اگه میشه یه مثال بزنید