با سلام
من در حین اجرای برنامه ام از داخل یک فرم ، یک فرم دیگر را باز می کنم و سپس فرم اول بسته می شود ولی فرمی که باز کرده بودم می رود پشت فرم اصلی قرار می گیرد
(راه حلی به غیر از ShowDialog )
کسی راه حلی داره
با تشکر
با سلام
من در حین اجرای برنامه ام از داخل یک فرم ، یک فرم دیگر را باز می کنم و سپس فرم اول بسته می شود ولی فرمی که باز کرده بودم می رود پشت فرم اصلی قرار می گیرد
(راه حلی به غیر از ShowDialog )
کسی راه حلی داره
با تشکر
سلام
دوست عزيز من كه متوجه نشدم مشكل كجاست و شما چي ميخواين.
توضیح بیشتر
من 3 تا فرم دارم که فرم اول ، فرم اصلی است
من از داخل فرم 1 ، فرم 2 رو فراخوانی می کنم (توجه کنید که فرم 1 همیشه باز است)
از داخل فرم 2 ، فرم 3 فراخوانی میشه و بعد از ان فرم 2 بسته می شود
ولی در همین موقع فرم 3 ، پشت فرم 1 می رد
یعنی شما میخوای فرم ها در یک فرم نمایش بدین یعنی میخواین فرم 2 و 3 رو تو پنل های موجود در فرم اول مثلاً نشون بدید ؟؟؟
خاصیت top most فرم اول رو true کنید
من اين كد رو استفاده كردم مشكلي نداره.
Form3 frm = new Form3();
frm.ShowDialog();
this.Close();
اين كد رو تو دكمه اي در فرم دوم كه ميخواي فرم سوم رو نمايش بده مينويسي.
بله همین طورهیعنی شما میخوای فرم ها در یک فرم نمایش بدین یعنی میخواین فرم 2 و 3 رو تو پنل های موجود در فرم اول مثلاً نشون بدید ؟؟؟
این خاصیت رو پیدا نکردم می تونید به صورت تصویری نشان دهیدخاصیت top most فرم اول رو true کنید
من این کد رو هم استفاده کردم اما این کد باعث می شود فرم 3 که ShowDialog می شود فرم جاری بسته نشود که من این طور نمی خوام
Form3 frm = new Form3();
frm.ShowDialog();
this.Close();
حال اگه کد رو به این صورت تغییر دهیم
Form3 frm = new Form3();
frm.Show();
this.Close();
انگاه فرم 3 می رود پشت فرم اصلی ؟؟؟
Form form = new Form();
form.TopLevel = false;
panel1.Controls.Add(form);
form.Show();
در کد منظور از
Form form = new Form();
form.TopLevel = false;
panel1.Controls.Add(form);
form.Show();
Form form = new Form();
فرم اصلی است یا نه؟؟
می تونید بیشتر این کد رو توضیح دهید
دوست عزیز منظور از فرم یعنی فرم جدید
که شما با نام فرم مورد نظر خودت جایگزین کن
Form2 frm = new Form2();
frm.Show(this);
چرا فرم اصلی ت mdiContainer نمکنی که این همه مشکل نداشته باشی....... !؟
منظور از this در اینجا فرم اصلی است؟؟
Form2 frm = new Form2();
frm.Show(this);
وقتی از این خاصیت استفاده می کنم بک گراندم دیگه نمایش داده نمی شهچرا فرم اصلی ت mdiContainer نمکنی که این همه مشکل نداشته باشی....... !؟
دوست عزیز فرم اصلی رو انتخاب کن بعد تو قسمت پروپرتی یک خاصیت هست به همین نام که باید برابر با true قرارش بدی
همین
موفق باشی
سلام
از متودهای زیر هم میتوانید استفاده کنید:
//in the name of god
//اللهم صل علی محمد و آله
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
Form3 f3 = new Form3();
f3.Show();
f3.BringToFront();
//or
f3.Select();
//or
f3.Focus();
//or
f3.Activate();
}
}
}
فقط دقت کنید که در هنگام بستن فرم2، فرم1 را Show نکنید.
موفق باشید.
- انجام کار گفته شده توسط programerinfonet
- درفرم اصلی برای صدا زدن بقیه فرمها از مراحل زیر
- Form2 frm2 = new Form2
- frm2.MdiParent = this
- frm2.Show
- backgroun image میشه براش گذاشت
وقتی از این خاصیت استفاده می کنم بک گراندم دیگه نمایش داده نمی شه
backgroun image میشه براش گذاشت