PDA

View Full Version : کد نویسی رویداد ها یک کنترل



soonami
سه شنبه 09 فروردین 1390, 03:08 صبح
دوستان با این کد با زدن BUtton 1 یک دگمه با مشخصات زیر ظاهر میشود حال من برای رویداد های این کنترل چطوری کد بنویسم
و اگر روی BUtoon1 مجدد کلیک کردم چطوری برنامه یک دگمه دیگه با مشخصاتی که خودم میدم با عنوان salam 2 روی فرم قرار بده با توجه به اینکه رویداد salam با salam2 جدا باشه و.... و تا چند دگمه میشه به این صورت ساخت


Dim A As New Button()
With A
A.Text = "sALAM"
A.Width = 149
A.Height = 106
A.Location = New Point(280, 95)
End With

Me.Controls.Add(A)




دوستان کد دادن مشحصات رو بلدم :قهقهه:

Parham.D
سه شنبه 09 فروردین 1390, 11:14 صبح
از برنامه‏ای که گذاشتم استفاده کنید، فکر کنم شما را به هدفتان نزدیک کند :)

soonami
سه شنبه 09 فروردین 1390, 12:25 عصر
ممنون دوست عزیز قسمتی از کارمو را انداخت ولی من میخواهم رویداد های salam 10 با salam 1 فرق کنه کلا تمامی کنترل ها رویداد های جدا از هم رو داشته باشن

درباره کدی که نوشتید امکان داره توضیح بدید تا متوجه بشم شما این تیکه کدها رو اضافه کردید فکر کنم


AddHandler A.Click, AddressOf Buttons_click


و


Private Sub Buttons_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim tempbutton As Button = sender
tempbutton.Text = "Change Text" + counter.ToString()
End Sub

shadi khanum
سه شنبه 09 فروردین 1390, 14:48 عصر
کد دوم کدهایی که قرار بعد از ایجاد یه button، برای رویداد کلیک اون اعمال بشه و کد اول دستورات لازم برای یرقراری ارتباط رویداد کلیک دکمه با اون دستوراته!
شما وقتی در حالت Design یه دکمه رو فرم میذاری و روش دابل کلیک میکنی، میبینی که یه تابع به کدهات اضافه میشه که ته اون تابع نوشته Handles button1.Click، این یعنی وقتی رو Button1 کلیک شد، بیا سراغ این تابع.
حالا وقتی شما در حالت اجرای برنامه کنترلی رو به فرم Add میکنی و میخوای واسه کلیکش کد بنویسی، باید اون دستوراتی که قرار واسه کلیک اجرا بشه رو قبلا تو برنامه نوشته باشی و موقع ایجاد دکمه، اون ارتباط (Handles....) رو برقرار کنی

shadi khanum
سه شنبه 09 فروردین 1390, 14:51 عصر
اگه میخوای با کلیک روی هر دکمه کار متفاوتی انجام بشه باید قبلا دستوراتی که قرار واسه کلیک انجام بشه رو تو کد نوشته باشی و وقتی تو برنامه دکمه ایجاد شد، با دستوری که دوستمون گفته ارتباط رو برقرار کنی یا اینکه مثل این مثال، یه تابع داشته باشی ولی مثلا با توجه به اسم دکمه ای که ایجاد شده ، کارای مختلفی بکنه که به کاری که میخوای بکنی بستگی داره

soonami
سه شنبه 09 فروردین 1390, 15:45 عصر
میشه الان برای همین کاری که کفتید یه کد بنویسید من دقیق متوجه نشدم مثلا با زدن روی salam 2 رنگ فرم عوض بشه با زدن salam 10 label1 متنی رو نشون بده

در ضمن برنامه ای که دوستمون قرار داده اگر مثلا روی دگمه کلیک کنی و 4 تا دگمه بسازی و حالا بعد از این روی 4 تا کلیک کنی متن هر 4 تا دگمه ساخته شده یکی هست

shadi khanum
سه شنبه 09 فروردین 1390, 17:42 عصر
این Sample رو ببین، شاید بتونی ازش واسه کاری که میخوای بکنی ایده بگیری

soonami
سه شنبه 09 فروردین 1390, 17:55 عصر
با کدوم نسخه نوشتید من از نسخه 2010 استفاده میکنم ارور داد زمان convert در ضمن در نسخه 2005 باز نمی کنه

ممنون میشم اگر ممکنه درست کنید تا من ببینم لطف میکنید

فکر ککنم 2008 باشه برای شما

shadi khanum
سه شنبه 09 فروردین 1390, 18:46 عصر
بله با 2008 نوشته شده، متاسفانه 2010 یا 2005 ندارم . convert واسه چی Error میده؟

soonami
سه شنبه 09 فروردین 1390, 18:59 عصر
نمیدونم کلا مشکل داره اگر مقدوره کد هاتون رو بزارید همین جا دیگه با کمی توضیح خودم کپی پیست کنم :دی

shadi khanum
سه شنبه 09 فروردین 1390, 23:40 عصر
یه فرم درست کن، یه button روش بذار به اسم button1 که با کلیک روش بتونی button تولید کنی . بعد توی کد vb فرم همه چیزو پاک کن و کلا این رو paste کن.این کل کد:
Public Class Form1
Dim Index, _top, _left As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
createButton(Index)
Index = Index + 1

_top = _top + 22
_left = _left + 55

End Sub
Private Sub createButton(ByVal _nameind As Integer)
Try
Dim b As New Button
b.Name = "btn" & _nameind
b.Text = "دکمه " & _nameind
b.Top = _top
b.Left = _left
b.Width = 50
b.Height = 20
Me.Controls.Add(b)
AddHandler b.Click, AddressOf Btn_click
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
_top = 50
_left = 50
End Sub
Private Sub Btn_click(ByVal sender As Object, ByVal e As EventArgs)
Try
Dim btmp As Button
btmp = CType(sender, Button)

Select Case btmp.Name
Case "btn0"
Me.BackColor = Color.Green
Case "btn1"
Label1.Text = "This is my test"
Case "btn2"
btmp.BackColor = Color.Red
Case "btn3"
Me.Font = New Font("Tahoma", 11, FontStyle.Bold, GraphicsUnit.Pixel)
Case "btn4"
MsgBox("This is Test")
Case Else
MsgBox(btmp.Text)
End Select

Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class

shadi khanum
سه شنبه 09 فروردین 1390, 23:41 عصر
اجرا کن اگه جاییش رو متوجه نشوی بگو بیشتر توضیح بدم

soonami
چهارشنبه 10 فروردین 1390, 00:14 صبح
دسستتون درد نکنه متشکرم مشکلم فعلا حل شده
اگر لطف کنید وقت دارید یه توضیح کلی بدید