PDA

View Full Version : مبتدی: مشکل با ایجاد فرم جدید ( New )



papeli_83
جمعه 28 بهمن 1390, 11:42 صبح
با سلام
من می خوام داخل برنامم گزینه new داشته باشم به این صورت که وقتی گزینه new کلیک شد فرم جدیدی از فرمم ایجاد شود دقیقا عین دکمه new برنامه excel .
برای این کار من از کد Shell(Application.ExecutablePath) استفاده کردم ولی نمی تونم عین برنامه Excel خاصیت text فرم جدید رو تغییر بدم اگه لطف کنین و منو راهنمایی کنین ممنون می شم .

pooya1072
جمعه 28 بهمن 1390, 12:34 عصر
توی فرم برنامه یک CommandButton بذار و توی event کلیکش کد زیر رو قرار بده


Dim F As New Form
F.AddOwnedForm(ownedForm:=Me)
F.Text = "Test"
F.Show()

papeli_83
جمعه 28 بهمن 1390, 18:31 عصر
توی فرم برنامه یک CommandButton بذار و توی event کلیکش کد زیر رو قرار بده


Dim F As New Form
F.AddOwnedForm(ownedForm:=Me)
F.Text = "Test"
F.Show()

با سلام
دوست عزیز کد شما را امتحان کردم ولی یه فرم جدید باز می کنه , نه فرم برناممو (در واقع فرممو باز میکنه ولی یه فرم خالی رو)
عیب دیگه ای که هم داره اینه که وقتی فرم جدید را می بندم فرم قبلی هم بسته می شه

فرید نجفلو
جمعه 28 بهمن 1390, 18:48 عصر
دوست عزیز این کد رو امتحان کنید:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
If Command$.Count <> 0 Then Me.Text = Command$()
End Sub
Private Sub btnNewInstance_Click(sender As System.Object, e As System.EventArgs) Handles btnNewInstance.Click
Shell(Application.ExecutablePath & " New Caption", AppWinStyle.NormalFocus)
End Sub

papeli_83
جمعه 28 بهمن 1390, 18:59 عصر
دوست عزیز این کد رو امتحان کنید:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
If Command$.Count <> 0 Then Me.Text = Command$()
End Sub
Private Sub btnNewInstance_Click(sender As System.Object, e As System.EventArgs) Handles btnNewInstance.Click
Shell(Application.ExecutablePath & " New Caption", AppWinStyle.NormalFocus)
End Sub

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

فرید نجفلو
جمعه 28 بهمن 1390, 20:05 عصر
ببینید ما تو خط 5 برنامه خودمون رو دوباره اجرا می کنیم و یک پارامتر که همون عنوان پنجره است رو به برنامه می فرستیم
بعد تو خط 2 چک می کنیم اگه پارمتری ارسال شده از اون به عنوان ، عنوان پنجره استفاده می کنیم(باراولی که برنامه اجرا می شه پارامتر نداره!)

papeli_83
جمعه 28 بهمن 1390, 20:55 عصر
با سلام
من یه مشکل دیگه هم دارم و اون اینه که می خوام عین برنامه excel وقتی که روی دکمه new کلیک می کنم یه فایل جدید ( مثالا book 1 ) ایجاد بشه , اگه دوباره روی دکمه new کلیک کردم یه فایل به اسم book 2 ایجاد بشه
برای این کار من از متغییر استاتیک استفاده کردم به صورت زیر
Public Sub new1()
Static a As Integer = 1
Shell(Application.ExecutablePath & " main-book " & a, AppWinStyle.NormalFocus)
a += 1
End Sub
اما مشکلش اینجاست که فقط در فرم اصلی با کلیک دوم , book 2 ایجاد میشه و اگه تو فایل book 1 روی دکمه new کلیک کنم دوباره فایل book 1 ساخته می شه!
اگه لطف کنین و راهنماییم کنین ممنون میشم

فرید نجفلو
جمعه 28 بهمن 1390, 21:07 عصر
با سلام
من یه مشکل دیگه هم دارم و اون اینه که می خوام عین برنامه excel وقتی که روی دکمه new کلیک می کنم یه فایل جدید ( مثالا book 1 ) ایجاد بشه , اگه دوباره روی دکمه new کلیک کردم یه فایل به اسم book 2 ایجاد بشه
برای این کار من از متغییر استاتیک استفاده کردم به صورت زیر
Public Sub new1()
Static a As Integer = 1
Shell(Application.ExecutablePath & " main-book " & a, AppWinStyle.NormalFocus)
a += 1
End Sub
اما مشکلش اینجاست که فقط در فرم اصلی با کلیک دوم , book 2 ایجاد میشه و اگه تو فایل book 1 روی دکمه new کلیک کنم دوباره فایل book 1 ساخته می شه!
اگه لطف کنین و راهنماییم کنین ممنون میشم

دوست عزیز شما چرا دوست دارید کا خودتون رو مشکل کنید!!
شما بهتره از روش MDI استفاده کنید به این صورت که یک پنجره اصلی داشته باشید و پنجره جدیدتون رو داخل اون باز کنید و این کار هم همون کاریه که Excel انجام می ده و شما هم دارید اکسل رو مثال می زنید
با این روش شما احاطه کامل به پنجره ها خواهید داشت!
اگه شما در کار کردن با MDI جایی مشکل دارید مطرح کنید