PDA

View Full Version : اجرای فرم در فرم دیگر



fool66
شنبه 11 خرداد 1392, 22:02 عصر
سلام

من یه فرم به صورت زیر دارم که هر کدوم از کلید های منوی بالا یه فرم هستن که توی پنل اضافه میشن
105004


حالا می خوام از درون یکی از این فرم هایی که اجرا میشه یه فرم دیگه رو اجرا کنم میشه راهنماییم کنید

mehrdad1991h
شنبه 11 خرداد 1392, 22:45 عصر
مثال :
http://www.codeproject.com/Articles/3553/Introduction-to-MDI-Forms-with-C

موفق باشید :لبخندساده:

fool66
شنبه 11 خرداد 1392, 23:47 عصر
اساتید شرکت نمایید:اشتباه:

ali.bahrami
یک شنبه 12 خرداد 1392, 00:13 صبح
دوستمون که جواب دادن. فرم اصلی میشه والد بقیه هم مولد

fool66
یک شنبه 12 خرداد 1392, 00:27 صبح
وقتی یه مولد می خواد فرم مولد رو توی فرم والد اجرا کنه اجرا نمیشه حتی از طریق تابع هم اقدام کردم نشد

fool66
یک شنبه 12 خرداد 1392, 01:33 صبح
توی تصویر نگاه کنید توی منوی بالا گزینه " ثبت فاکتور ورودی " رو میزنم بعد از ثبت اطلاعات یه دکمه ثبت توی فرمه " ثبت فاکتور ورودی " دارم که می خوام وقتی اونو میزنم یه فرم دیگه توی panel نمایش داده بشه به جای فرم جاری توی فراخوانی فرم مشکلی ندارم توی اینکه دقیقا داخل panel بیفته مشکل دارم توی حالت عادی دقیقا می تونم مچ کنم هر کاری می کنم نحوه اشاره به panel رو پیدا نمی کنم قبلا با this این کارو می کردم

fool66
یک شنبه 12 خرداد 1392, 13:09 عصر
نه
من سه تا فرم دارم یکیش فرم اصلی هست دو تا فرم دیگه داخل این فرم توی پنل Dock میشه توی این کار مشکلی ندارم
وقتی می خوام داخل یکی از این فرم ها که توی پنل Dock شده فرم دیگه رو صدا بزنم به صورت معمولی میشه ولی توی فرم اصلی نمی تونم Dock کنم

hamid_hr
یک شنبه 12 خرداد 1392, 13:43 عصر
خب ببين اينطوري فرزند و پدر و پدر بزرگ كه فك كنم نميشه

xxnagin
یک شنبه 12 خرداد 1392, 13:59 عصر
سلام
ببین این بدرت میخوره
یه فرم و بقیه فر مها همش با کد
فقط vb هستش


Public Class Form1
Dim panel2 As New Panel
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim frm As New Form
Dim btn As New Button
btn.Location = New Point(0, 0)
btn.Size = New Size(75, 30)
btn.BackColor = Color.Gold
btn.Text = "show form3"
btn.FlatStyle = FlatStyle.Flat
panel2.Dock = DockStyle.Right
panel2.Size = New Size(300, 300)
panel2.BackColor = Color.DodgerBlue
panel2.Controls.Add(btn)
frm.Controls.Add(panel2)
AddHandler btn.Click, AddressOf btn_click
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Right
frm.Show()
Panel1.Controls.Add(frm)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.WindowState = FormWindowState.Maximized
Panel1.Height = Me.Height - Button1.Height - 50
End Sub
Private Sub btn_click(sender As Object, e As EventArgs)
Dim frm1 As New Form
Dim btn1 As New Button
Dim panel3 As New Panel
frm1.TopLevel = False
frm1.FormBorderStyle = FormBorderStyle.None
frm1.Dock = DockStyle.Right
panel3.Dock = DockStyle.Right
panel3.Size = New Size(100, 100)
panel3.BackColor = Color.DodgerBlue
frm1.Controls.Add(panel3)
btn1.Location = New Point(0, 0)
btn1.Size = New Size(75, 30)
btn1.BackColor = Color.Gold
btn1.Text = "ok"
AddHandler btn1.Click, AddressOf btn1_click
panel3.Controls.Add(btn1)
frm1.Show()
panel2.Controls.Add(frm1)
End Sub
Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize
End Sub
Private Sub btn1_click(sender As Object, e As EventArgs)
MsgBox("OK")
End Sub
End Class

fool66
یک شنبه 12 خرداد 1392, 14:17 عصر
نه نمیشه اینو ببینین

105022

الان اون دو تا گزینه منو کار خودشون رو انجام میدن

ولی توی فرم 2 یه دکمه هست که فرم سه رو اجرا می کنه

می تونم اجرا کنم ولی اجازه Dock در فرم اصلی رو نمیده !!!!

khokhan
یک شنبه 12 خرداد 1392, 16:38 عصر
نه نمیشه اینو ببینین

105022

الان اون دو تا گزینه منو کار خودشون رو انجام میدن

ولی توی فرم 2 یه دکمه هست که فرم سه رو اجرا می کنه

می تونم اجرا کنم ولی اجازه Dock در فرم اصلی رو نمیده !!!!

بفرما عزیز

درست شد البته " فرم برودر ها " رو فعال کردم تا بهتر معلوم بشه کی به کیه :قهقهه::لبخند::لبخند::لبخند:

fool66
یک شنبه 12 خرداد 1392, 16:48 عصر
مرسی استاد
بازم مثل همیشه زحمتم افتاد گردن شما
الان فرم 3 رو توی فرم 2 نمایش میشه من می خوام فرم 2 رو ببنده و فرم 3 رو توی فرم 1 نشون بده

Mahmoud.Afrad
یک شنبه 12 خرداد 1392, 18:22 عصر
ببین باید کنترل Panel فرم1 رو بدست بیاری تا بتونی فرم3 رو بهش اضافه کنی. خوب از اونجایی که فرم2 به پنل اضافه شده پس Parent فرم2 همان پنل فرم1 است.
پس در رویداد کلیک باتن در فرم2 کافیه فرم3 را ایجاد و Parentش را مساوی Parent فرم2 قرار بدی.
در فرم2:

private void button1_Click(object sender, EventArgs e)
{
Form3 frm3 = new Form3();
frm3.TopLevel = false;
frm3.Parent = this.Parent;
frm3.Show();
this.Close();
}
خوبی این روش اینه که نیازی به Public کردن پنل نیست.

khokhan
یک شنبه 12 خرداد 1392, 18:23 عصر
مرسی استاد
بازم مثل همیشه زحمتم افتاد گردن شما
الان فرم 3 رو توی فرم 2 نمایش میشه من می خوام فرم 2 رو ببنده و فرم 3 رو توی فرم 1 نشون بده
با سلام مجدد
می بخشین من متوجه نشده بودم :گریه::متفکر::گیج:

بفرما فکر کنم همونیه که می خواستی این دیگه حرف نداره :لبخند::لبخند:

البته لازمه که modifier در panel فرم 1 رو puplic بکنی تا در فرم 2 بتونی ستش کنی

fool66
یک شنبه 12 خرداد 1392, 18:35 عصر
با سلام مجدد
می بخشین من متوجه نشده بودم :گریه::متفکر::گیج:

بفرما فکر کنم همونیه که می خواستی این دیگه حرف نداره :لبخند::لبخند:

البته لازمه که modifier در panel فرم 1 رو puplic بکنی تا در فرم 2 بتونی ستش کنی


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