PDA

View Full Version : سوال: مشکل در طرای فرم



hackman
شنبه 31 فروردین 1392, 11:53 صبح
سلام

دوستان من تو طراحی فرمام یه مشکل اساسی دارم

یه فرم اصلی دارم که داخلش یه پنل هست
داخل پنل یه باتن گذاشتم که وقتی روش کلیک میکنم یه فرم دیگه داخل همون پنل باز میشه
کدی که برای باتن نوشتم :
form 2 f2 = new form2();
f2.toplevel = false ;
f2.Dock = DockStyle.Fill ;
Button1.Visible = false ;
panel1.Controls.Add(f2);

داخل فرم 2 هم یه باتن گذاشتم که در واقع فرمو میبنده و به فرم اصلی بر میگرده
مشکلم اینه که تو رویداد کلیک باتنی ک داخل فرو 2 گذاشتم نمیتون باتنی ک تو فرم اصلیمه فراخوانی کنم و کد زیر رو براش بنویسیم :

Button1.Visible = true;
باید چیکار کنم ک باتن رو بشناسه ؟

alidooraghi
شنبه 31 فروردین 1392, 12:40 عصر
خاصی باتن رو public کن ببین جواب باید جواب بده .
امتحان کن

hackman
شنبه 31 فروردین 1392, 13:43 عصر
خاصی باتن رو public کن ببین جواب باید جواب بده .
امتحان کن

modifire باتن گذاشتم رو public ولی جوب نمیده

hackman
شنبه 31 فروردین 1392, 15:47 عصر
کمک کنید لدفن

mousa1992
شنبه 31 فروردین 1392, 16:41 عصر
سلام
بعد از public تعریف کردن سطح دسترسی کنترل های موجود روی فرم یک میتونید از طریق کد زیر به اشیا فرم دسترسی داشته باشید از فرم های دیگه

((Form1)this.Parent)
this اشاره داره به کلاس فرم 2 و parent فرم 2 میشه فرم یک ( چون فرم 1 اونو فراخوانی میکنه ) و حالا باید this.parent رو cast کنید به فرم 1 و بعد از اون با گذاشتن علامت . میتونید به تمام اشیائی که public تعریف کردید دسترسی داشته باشید

موفق باشید

hackman
شنبه 31 فروردین 1392, 17:00 عصر
سلام
بعد از public تعریف کردن سطح دسترسی کنترل های موجود روی فرم یک میتونید از طریق کد زیر به اشیا فرم دسترسی داشته باشید از فرم های دیگه

((Form1)this.Parent)
this اشاره داره به کلاس فرم 2 و parent فرم 2 میشه فرم یک ( چون فرم 1 اونو فراخوانی میکنه ) و حالا باید this.parent رو cast کنید به فرم 1 و بعد از اون با گذاشتن علامت . میتونید به تمام اشیائی که public تعریف کردید دسترسی داشته باشید

موفق باشید

میشه بیشتر توضیح بدی ؟ راسشو بخای نفهمیدم

hackman
دوشنبه 02 اردیبهشت 1392, 10:30 صبح
دوستان یه کومکی در این ضمینه میکنید ؟

amirzandi
دوشنبه 02 اردیبهشت 1392, 11:25 صبح
این راه رو تست کنید

public partial class Form2 : Form
{
private Button _b;
public Form2(Button b)
{
InitializeComponent();
if (b != null)
_b = b;
}

private void Form2_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
_b.Visible = false;
}
}


public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Form2 f = new Form2(this.button1);
f.TopLevel = false;
f.Dock = DockStyle.Fill;
this.panel1.Controls.Add(f);
}

mousa1992
سه شنبه 03 اردیبهشت 1392, 20:36 عصر
سلام

میشه بیشتر توضیح بدی ؟

شما می خواین از فرم 2 به اطلاعات فرم یک دسترسی داشته باشید- خب برای این کار باید دقیقا به همان نمونه از کلاس فرم 1 که که توی حافظه بارگذاری شده دسترسی پیدا کنید
خب از طریق کدی که بالا قرار دادم میتونید این کارو انجام بدید - parent یا همون والد قرم 2 فرم 1 هست - چرا ؟ چون فرم 1 فرم 2 رو فراخوانی میکنه . خب ما نیاز داریم که نمونه ساخته شده از فرم 1 را که با استفاده از خاصیت parent مربوط به فرم 2 به ان دسترسی پیدا کردیم را به فرم 1 cast کنیم و کار تمومه . میتونید به تمام اشیائی که public تعریف کردید دسترسی داشته باشید
موفق باشید

khokhan
سه شنبه 03 اردیبهشت 1392, 21:45 عصر
دوستان یه کومکی در این ضمینه میکنید ؟

بفرما اینم کومک:لبخند: