سلام
من یه فرم به صورت زیر دارم که هر کدوم از کلید های منوی بالا یه فرم هستن که توی پنل اضافه میشن
100.png
حالا می خوام از درون یکی از این فرم هایی که اجرا میشه یه فرم دیگه رو اجرا کنم میشه راهنماییم کنید
سلام
من یه فرم به صورت زیر دارم که هر کدوم از کلید های منوی بالا یه فرم هستن که توی پنل اضافه میشن
100.png
حالا می خوام از درون یکی از این فرم هایی که اجرا میشه یه فرم دیگه رو اجرا کنم میشه راهنماییم کنید
مثال :
http://www.codeproject.com/Articles/...I-Forms-with-C
موفق باشید
اساتید شرکت نمایید
دوستمون که جواب دادن. فرم اصلی میشه والد بقیه هم مولد
وقتی یه مولد می خواد فرم مولد رو توی فرم والد اجرا کنه اجرا نمیشه حتی از طریق تابع هم اقدام کردم نشد
توی تصویر نگاه کنید توی منوی بالا گزینه " ثبت فاکتور ورودی " رو میزنم بعد از ثبت اطلاعات یه دکمه ثبت توی فرمه " ثبت فاکتور ورودی " دارم که می خوام وقتی اونو میزنم یه فرم دیگه توی panel نمایش داده بشه به جای فرم جاری توی فراخوانی فرم مشکلی ندارم توی اینکه دقیقا داخل panel بیفته مشکل دارم توی حالت عادی دقیقا می تونم مچ کنم هر کاری می کنم نحوه اشاره به panel رو پیدا نمی کنم قبلا با this این کارو می کردم
نه
من سه تا فرم دارم یکیش فرم اصلی هست دو تا فرم دیگه داخل این فرم توی پنل Dock میشه توی این کار مشکلی ندارم
وقتی می خوام داخل یکی از این فرم ها که توی پنل Dock شده فرم دیگه رو صدا بزنم به صورت معمولی میشه ولی توی فرم اصلی نمی تونم Dock کنم
خب ببين اينطوري فرزند و پدر و پدر بزرگ كه فك كنم نميشه
سلام
ببین این بدرت میخوره
یه فرم و بقیه فر مها همش با کد
فقط 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
نه نمیشه اینو ببینین
WindowsFormsApplication3.zip
الان اون دو تا گزینه منو کار خودشون رو انجام میدن
ولی توی فرم 2 یه دکمه هست که فرم سه رو اجرا می کنه
می تونم اجرا کنم ولی اجازه Dock در فرم اصلی رو نمیده !!!!
مرسی استاد
بازم مثل همیشه زحمتم افتاد گردن شما
الان فرم 3 رو توی فرم 2 نمایش میشه من می خوام فرم 2 رو ببنده و فرم 3 رو توی فرم 1 نشون بده
ببین باید کنترل Panel فرم1 رو بدست بیاری تا بتونی فرم3 رو بهش اضافه کنی. خوب از اونجایی که فرم2 به پنل اضافه شده پس Parent فرم2 همان پنل فرم1 است.
پس در رویداد کلیک باتن در فرم2 کافیه فرم3 را ایجاد و Parentش را مساوی Parent فرم2 قرار بدی.
در فرم2:
خوبی این روش اینه که نیازی به Public کردن پنل نیست.
private void button1_Click(object sender, EventArgs e)
{
Form3 frm3 = new Form3();
frm3.TopLevel = false;
frm3.Parent = this.Parent;
frm3.Show();
this.Close();
}