PDA

View Full Version : سوال: قرار دادن فرم اصلی در پایینترین سطح (لایه)



afshines
پنج شنبه 05 مرداد 1391, 12:06 عصر
مشکل من اینه که فرم اصلی من تمام صفحه نمایش داده میشه و من نمیخوام

فرمی از اپلیکشنم زیر فرم اصلی به هیچ وجح بره استفاده از ShowDialog هم برام مقدور نیست !:ناراحت:

باید به صورت Show فرم دوم فراخونی بشه ؟

مهرداد صفا
پنج شنبه 05 مرداد 1391, 13:40 عصر
سلام
میتوانید از متود SendToBack برای به عقب بردن فرم اصلی خود و برای اینکه اشیا کنترلها و فرمهای دیگرتان رو قرار بگیرند از متود BringToFront استفاده کنید و همچنین در مواقع لازم متود Select باعث میشود Focus روی شی مورد نظر رفته و یا فرم مورد نظر Active شود.
موفق باشید.

ali_habibi1384
پنج شنبه 05 مرداد 1391, 14:06 عصر
سلام
میتوانید از متود SendToBack برای به عقب بردن فرم اصلی خود و برای اینکه اشیا کنترلها و فرمهای دیگرتان رو قرار بگیرند از متود BringToFront استفاده کنید و همچنین در مواقع لازم متود Select باعث میشود Focus روی شی مورد نظر رفته و یا فرم مورد نظر Active شود.
موفق باشید.
پاسخ شما هيچ ربطي به سوال ايشون نداشت.اينايي كه گفتيد براي بالا اومدن ابزارها و توي محيط طراحي نه در اجرا!!!


شکل من اینه که فرم اصلی من تمام صفحه نمایش داده میشه و من نمیخوام

فرمی از اپلیکشنم زیر فرم اصلی به هیچ وجح بره استفاده از ShowDialog هم برام مقدور نیست !

باید به صورت Show فرم دوم فراخونی بشه ؟

من الان دقيقا نميدونم شما چي ميخوايد؟قراره فرمها از صفحه اصلي نزنه بيرون؟ شما كه ميگيد فول اسكرينه ديگه چطور ميزنه بيرون؟

مهرداد صفا
پنج شنبه 05 مرداد 1391, 15:06 عصر
من الان دقيقا نميدونم شما چي ميخوايد؟
پاسخ شما هيچ ربطي به سوال ايشون نداشت.اينايي كه گفتيد براي بالا اومدن ابزارها و توي محيط طراحي نه در اجرا!!!


سلام دوست گرامی!
1- مواردی که در بالا مطرح کردم از متودهای System.Windows.Control بودند و شخصا ندیدم متودها در زمان طراحی که کنترل واقعی ساخته نشده است اجرا گردد.
2- شما که مشکل ایشون رو متوجه نشدید چطوری فهمیدید جواب من ربطی به سوال ایشون نداشت؟
3- من حدث زدم که منظور ایشون از "زیر فرم اصلی" با توجه به اینکه فرمشون تمام صفحه است "پشت فرم اصلی" بود.


مشکل من اینه که فرم اصلی من تمام صفحه نمایش داده میشه و من نمیخوام

فرمی از اپلیکشنم زیر فرم اصلی به هیچ وجح بره استفاده از ShowDialog هم برام مقدور نیست !:ناراحت:

باید به صورت Show فرم دوم فراخونی بشه ؟




میتوانید پس از نمایش فرم دوم متود Form.Activate را اجرا کنید تا پنجره فعالشود.
من چند نکته که فکر میکردم به دردتون میخوره معرفی کردم حالا اگر جوابتون رو نگرفتید کمی بیشتر توضیح بدید تا دوستان کمکتون کنند ما هم چیزی یاد بگیریم.
موفق باشید.

rezamansori
پنج شنبه 05 مرداد 1391, 15:43 عصر
اگه توی یه تایمر موجود در فرم اصلی کد زیر رو بنویسید فرم اصلی پشت همه میفته.


This.SendToBack();

tooraj_azizi_1035
پنج شنبه 05 مرداد 1391, 15:53 عصر
سلام
چرا MDI کار نمی کنی؟

afshines
پنج شنبه 05 مرداد 1391, 16:19 عصر
سلام
چرا MDI کار نمی کنی؟

یه خورده راجب MDI توضیح بدین چطور فرم و فرزند فرم اصلی کنم؟

از تجربه خودتون بگید

afshines
پنج شنبه 05 مرداد 1391, 16:47 عصر
if (!Application.OpenForms["Rec_Personel"].?)
{
Rec_Personel rec_personel = new Rec_Personel();

rec_personel.Show();
}
else
}
?
{



من می خواهم اینطوری اول ببینه اون فرم فعاله اگه هست دی گه نیاد از نوع بسازتش بلکه فرم فراخونی کنه
حلا جای ؟ چی بزارم؟

مهرداد صفا
پنج شنبه 05 مرداد 1391, 16:59 عصر
سلام
این کد از متودهای SendToBack و BringToFront استفاده میکند و با فشردن متواری کلید بین دو فرم swich میکند.

//
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
static Form FRM2 =new Form2();
public Form1()
{
InitializeComponent();
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.KeyDownE vent);
FRM2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.KeyDownE vent);
}
private void Form1_Load(object sender, EventArgs e)
{
this.BackColor = Color.Black;
this.WindowState = FormWindowState.Maximized;
FRM2.Show();
}
private void KeyDownEvent(Object sender, System.Windows.Forms.KeyEventArgs e)
{
Form ActiveWindow = (Form)sender;
ActiveWindow.SendToBack();
if (ActiveWindow == this)
{
FRM2.BringToFront();
}
else
{
this.BringToFront();
}
}
}
}



با اجرای این متودها در زمانهای مناسب میتوانید طرز قرار گرفتن فرمها را کنترل کنید.

مهرداد صفا
پنج شنبه 05 مرداد 1391, 17:48 عصر
if (!Application.OpenForms["Rec_Personel"].?)
{
Rec_Personel rec_personel = new Rec_Personel();

rec_personel.Show();
}
else
}
?
{



من می خواهم اینطوری اول ببینه اون فرم فعاله اگه هست دی گه نیاد از نوع بسازتش بلکه فرم فراخونی کنه
حلا جای ؟ چی بزارم؟

static Rec_Personel rec_personel = new Rec_Personel();
if (Application.OpenForms["Rec_Personel"]!=rec_personel)
{

rec_personel.Show();
}
else
}
rec_personel.Activate();
//or
rec_personel.Select();
//or
rec_personel.BringToFront();



{

ali_habibi1384
پنج شنبه 05 مرداد 1391, 18:59 عصر
سلام دوست گرامی!
1- مواردی که در بالا مطرح کردم از متودهای System.Windows.Control بودند و شخصا ندیدم متودها در زمان طراحی که کنترل واقعی ساخته نشده است اجرا گردد.
2- شما که مشکل ایشون رو متوجه نشدید چطوری فهمیدید جواب من ربطی به سوال ایشون نداشت؟
3- من حدث زدم که منظور ایشون از "زیر فرم اصلی" با توجه به اینکه فرمشون تمام صفحه است "پشت فرم اصلی" بود.

میتوانید پس از نمایش فرم دوم متود Form.Activate را اجرا کنید تا پنجره فعالشود.
من چند نکته که فکر میکردم به دردتون میخوره معرفی کردم حالا اگر جوابتون رو نگرفتید کمی بیشتر توضیح بدید تا دوستان کمکتون کنند ما هم چیزی یاد بگیریم.
موفق باشید.
حق باشماست. من فكر كردم درباره پايين يا بالا بودن اشيا روي فرم داريد صحبت ميكنيد دوست عزيز:بامزه: