PDA

View Full Version : سوال: باز شدن چند فرم با یک کلیک



zer0_cool
چهارشنبه 14 مهر 1389, 01:10 صبح
فرض کنید ما در اینجا یک فرم داریم که درون آن یک کنترل commandButton هست میخوام وقتی روی دکمه کلیک میشه به تعداد مشخصی از همون صفحه (فرم) باز بشه با چه دستوری میتونم این کارو بکنم؟ لطفا راهنمایی کنید

Slytherin
چهارشنبه 14 مهر 1389, 01:31 صبح
فرض کنید ما در اینجا یک فرم داریم که درون آن یک کنترل commandButton هست میخوام وقتی روی دکمه کلیک میشه به تعداد مشخصی از همون صفحه (فرم) باز بشه با چه دستوری میتونم این کارو بکنم؟ لطفا راهنمایی کنید


Private Sub Command1_Click()
For i = 1 To 5
Set X = New Form1
X.Show
Next i
End Sub

zer0_cool
چهارشنبه 14 مهر 1389, 09:54 صبح
Private Sub Command1_Click()
For i = 1 To 5
Set X = New Form1
X.Show
Next i
End Sub
این کدی که دادید کار نکرد دوست عزیز:افسرده:

returnx
چهارشنبه 14 مهر 1389, 09:59 صبح
دلیلش اینکه شما متغیری از نوع فرم تعریف نکرده بودید این خط رو در General کپی کن جواب میده:

Dim x As Form

zer0_cool
چهارشنبه 14 مهر 1389, 19:01 عصر
دلیلش اینکه شما متغیری از نوع فرم تعریف نکرده بودید این خط رو در General کپی کن جواب میده:

Dim x As Form

داداش اصلا متغیری به نام فرم وجود نداره شاید منظور شما Integer هست یا چیزی دیگه
من متغییر رو هم تعریف کردم ولی بازم برنامه اجرا نشد و ارور داد.....لطفا اول خودتون تست کنید بعد بزارین کد رو....ولی بازم ممنون...کسی دیگه نیست کمکم کنه؟:ناراحت:

vbhamed
چهارشنبه 14 مهر 1389, 19:13 عصر
سلام

چرا دوست عزيز، متغير به نام Form وجود داره، البته در حقيقت يك نوع كلاس هست

2 تا فرم به يك پروژه خالي اضافه و كد زير رو بنويسيد

Dim x As Form

Set x = New Form2
x.Show

Set x = New Form2
x.Show

zer0_cool
چهارشنبه 14 مهر 1389, 22:34 عصر
سلام

چرا دوست عزيز، متغير به نام Form وجود داره، البته در حقيقت يك نوع كلاس هست

2 تا فرم به يك پروژه خالي اضافه و كد زير رو بنويسيد

Dim x As Form

Set x = New Form2
x.Show

Set x = New Form2
x.Show

ممنون ولی این چیزی که شما گفتین برای باز شدن 2 فرم با همون مشخصاته.
من میخوام به تعداد زیاد فرم باز بشه مثلا وقتی که کلیک میشه روی دکمه 100 تا از اون فرم باز بشه

Slytherin
چهارشنبه 14 مهر 1389, 22:41 عصر
ممنون ولی این چیزی که شما گفتین برای باز شدن 2 فرم با همون مشخصاته.
من میخوام به تعداد زیاد فرم باز بشه مثلا وقتی که کلیک میشه روی دکمه 100 تا از اون فرم باز بشه

همان طور که در اولین پست گفتم و مثال هم زدم شما می بایست از یک حلقه استفاده کنید.
به عنوان مثال کدی که من گذاشتم به غیر از فرم فعلی، 4 فرم دیگر را باز می کند،
شما می توانید عدد 5 را به 100 تغییر دهید!

vbhamed
پنج شنبه 15 مهر 1389, 00:55 صبح
سلام

خب همونو تعميم بدين ديگه

البته براي اينكه روي تك تك فرمها كنترل داشته باشيم بايد يك آرايه از نوع Form تعريف كنيم تا بعدا مثلا بتونيم با دستور x(10).Caption عنوان فرم يازدهم رو عوض كنيم

ضمنا موقع خروج از برنامه حتما فرم ها رو Unload كنيد

Dim x(100) As Form, i%

For i = 0 To 100
Set x(i) = New Form2
x(i).Move i * 60, i * 60
x(i).Show
Next

.
.
.

'--------------------- For Unload ------------------
For i = 0 To 100
Unload x(i)
Set x(i) = Nothing
Next

returnx
پنج شنبه 15 مهر 1389, 18:12 عصر
داداش اصلا متغیری به نام فرم وجود نداره شاید منظور شما Integer هست یا چیزی دیگه
من متغییر رو هم تعریف کردم ولی بازم برنامه اجرا نشد و ارور داد.....لطفا اول خودتون تست کنید بعد بزارین کد رو....ولی بازم ممنون...کسی دیگه نیست کمکم کنه؟:ناراحت:
خوب من تست کردم که فهمیدم مشکلش کجاست ...
در هر صورت خواهش میکنم.

vbhamed
شنبه 17 مهر 1389, 02:15 صبح
سلام

اين نمونه كدها هم تست شده هستن
شما كدي كه نوشتين يا پروژه تستي رو بفرستيد تا اصلاح بشه