PDA

View Full Version : سوال: قرار گرفتن یک فرم بالای فرم دیگه



malaki.davud
دوشنبه 15 آبان 1391, 16:23 عصر
با سلام
من در حین اجرای برنامه ام از داخل یک فرم ، یک فرم دیگر را باز می کنم و سپس فرم اول بسته می شود ولی فرمی که باز کرده بودم می رود پشت فرم اصلی قرار می گیرد
(راه حلی به غیر از ShowDialog )
کسی راه حلی داره
با تشکر

Nima_kyan
دوشنبه 15 آبان 1391, 16:31 عصر
سلام
دوست عزيز من كه متوجه نشدم مشكل كجاست و شما چي ميخواين.

malaki.davud
دوشنبه 15 آبان 1391, 16:41 عصر
توضیح بیشتر
من 3 تا فرم دارم که فرم اول ، فرم اصلی است
من از داخل فرم 1 ، فرم 2 رو فراخوانی می کنم (توجه کنید که فرم 1 همیشه باز است)
از داخل فرم 2 ، فرم 3 فراخوانی میشه و بعد از ان فرم 2 بسته می شود
ولی در همین موقع فرم 3 ، پشت فرم 1 می رد

harani
دوشنبه 15 آبان 1391, 17:03 عصر
یعنی شما میخوای فرم ها در یک فرم نمایش بدین یعنی میخواین فرم 2 و 3 رو تو پنل های موجود در فرم اول مثلاً نشون بدید ؟؟؟

programerinfonet
دوشنبه 15 آبان 1391, 17:03 عصر
خاصیت top most فرم اول رو true کنید

Nima_kyan
دوشنبه 15 آبان 1391, 17:10 عصر
من اين كد رو استفاده كردم مشكلي نداره.


Form3 frm = new Form3();
frm.ShowDialog();
this.Close();
اين كد رو تو دكمه اي در فرم دوم كه ميخواي فرم سوم رو نمايش بده مينويسي.

malaki.davud
دوشنبه 15 آبان 1391, 17:35 عصر
یعنی شما میخوای فرم ها در یک فرم نمایش بدین یعنی میخواین فرم 2 و 3 رو تو پنل های موجود در فرم اول مثلاً نشون بدید ؟؟؟

بله همین طوره



خاصیت top most فرم اول رو true کنید

این خاصیت رو پیدا نکردم می تونید به صورت تصویری نشان دهید






Form3 frm = new Form3();
frm.ShowDialog();
this.Close();





من این کد رو هم استفاده کردم اما این کد باعث می شود فرم 3 که ShowDialog می شود فرم جاری بسته نشود که من این طور نمی خوام
حال اگه کد رو به این صورت تغییر دهیم


Form3 frm = new Form3();
frm.Show();
this.Close();




انگاه فرم 3 می رود پشت فرم اصلی ؟؟؟

programerinfonet
دوشنبه 15 آبان 1391, 17:41 عصر
Form form = new Form();

form.TopLevel = false;
panel1.Controls.Add(form);

form.Show();

malaki.davud
دوشنبه 15 آبان 1391, 17:46 عصر
Form form = new Form();

form.TopLevel = false;
panel1.Controls.Add(form);

form.Show();




در کد منظور از
Form form = new Form();
فرم اصلی است یا نه؟؟
می تونید بیشتر این کد رو توضیح دهید

programerinfonet
دوشنبه 15 آبان 1391, 17:58 عصر
دوست عزیز منظور از فرم یعنی فرم جدید
که شما با نام فرم مورد نظر خودت جایگزین کن

nilmil_nil
دوشنبه 15 آبان 1391, 18:15 عصر
Form2 frm = new Form2();
frm.Show(this);

black_binary
دوشنبه 15 آبان 1391, 19:09 عصر
چرا فرم اصلی ت mdiContainer نمکنی که این همه مشکل نداشته باشی....... !؟

malaki.davud
دوشنبه 15 آبان 1391, 19:57 عصر
Form2 frm = new Form2();
frm.Show(this);




منظور از this در اینجا فرم اصلی است؟؟



چرا فرم اصلی ت mdiContainer نمکنی که این همه مشکل نداشته باشی....... !؟

وقتی از این خاصیت استفاده می کنم بک گراندم دیگه نمایش داده نمی شه

alimahdifar
دوشنبه 15 آبان 1391, 20:03 عصر
چرا فرم اصلی ت mdiContainer نمکنی که این همه مشکل نداشته باشی....... !؟

سلام
اگه راه داره و ممکنه در مورد mdiContainer , نحوه استفاده و ویژگیها وخاصیت هایش کامل توضیح بده.
ممنون

programerinfonet
دوشنبه 15 آبان 1391, 21:27 عصر
دوست عزیز فرم اصلی رو انتخاب کن بعد تو قسمت پروپرتی یک خاصیت هست به همین نام که باید برابر با true قرارش بدی
همین
موفق باشی

مهرداد صفا
دوشنبه 15 آبان 1391, 22:14 عصر
سلام
از متودهای زیر هم میتوانید استفاده کنید:

//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 نکنید.
موفق باشید.

black_binary
سه شنبه 16 آبان 1391, 18:20 عصر
انجام کار گفته شده توسط programerinfonet (http://barnamenevis.org/member.php?173652-programerinfonet)
درفرم اصلی برای صدا زدن بقیه فرمها از مراحل زیر
Form2 frm2 = new Form2
frm2.MdiParent = this
frm2.Show
backgroun image میشه براش گذاشت

nilmil_nil
چهارشنبه 17 آبان 1391, 19:03 عصر
منظور از this در اینجا فرم اصلی است؟؟




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

black_binary
چهارشنبه 17 آبان 1391, 19:10 عصر
وقتی از این خاصیت استفاده می کنم بک گراندم دیگه نمایش داده نمی شه


backgroun image میشه براش گذاشت