PDA

View Full Version : اجرا کردن یک event از فرم دیگر



karimi84
پنج شنبه 10 اردیبهشت 1388, 12:51 عصر
با سلام
دو فرم دارم می خوام وقتی در فرم 2 روی یک botton کلیک می کنم event ی از فرم 1 اجرا بشه
با تشکر

prankster
پنج شنبه 10 اردیبهشت 1388, 12:57 عصر
متد public در فرم2 ایجاد کنید و در آن event مورد نظر را raise کنید. خارج از بدنه کلاس raise کردن event ممکن نیست

adinochestva
پنج شنبه 10 اردیبهشت 1388, 13:48 عصر
اگر در فرم 2 یک instance از فرم 1 درست کردی خیلی راحت می تونی به event هاش subscribe کنی !

hamid67fathi
جمعه 11 اردیبهشت 1388, 01:09 صبح
اگر بخواهيم label که در فرم پدر باشه تغيير بديم چی ؟؟

adinochestva
جمعه 11 اردیبهشت 1388, 01:16 صبح
اگر بخواهيم label که در فرم پدر باشه تغيير بديم چی ؟؟
یعنی مثلا text اون label رو عوض کنی ؟
تو فرم child بنویس :


parent.Controls["label1"].Text="etwas";

hamid67fathi
شنبه 12 اردیبهشت 1388, 08:25 صبح
Error :
Object reference not set to an instance of an object.

Open-Source
شنبه 12 اردیبهشت 1388, 09:09 صبح
برای دسترسی به یه کنترل در فرم دیگه باید Modifiers=Public باشد(منظورم کنترل هستش)

hamid67fathi
شنبه 12 اردیبهشت 1388, 09:20 صبح
سلام
من اين مورد رو نوشتم و modifiers رو هم public کردم

Parent.Controls["error_lab"].Text = "پيغام سيستم : نام کاربری معتبر نميباشد";

اما خطای زير رو داد :
Object reference not set to an instance of an object.

mohsen_csharp
شنبه 12 اردیبهشت 1388, 11:30 صبح
اول در فرم یک در کنترل لیبل خاصیت Modifiers=Public قرار بده سپس
در فرم یک


Form2 f2 = new Form2();
f2.Owner= this;
f2.ShowDialog();

در فرم دو


this.Owner.Controls["label1"].Text = "new text";

یا می تونی در فرم 2 برای راحتی کار از این کد هم استفاده کنی


(this.Owner as Form1).label1.Text = "new text";

captain_black81
شنبه 12 اردیبهشت 1388, 11:53 صبح
آیا میشه یک private void در فرم owner را اجرا کرد

captain_black81
شنبه 12 اردیبهشت 1388, 12:01 عصر
جواب سوالمو خودن میدم
اگه public void تعریف کنید توی فرم دوم می بینیدش.



(this.Owner as Form1).comboBankLoad();

aysan_gh
شنبه 12 اردیبهشت 1388, 12:12 عصر
در مورد engine site php کسی چیزی میدونه؟
لطفا راهنماییم کنید

hamid67fathi
شنبه 12 اردیبهشت 1388, 13:15 عصر
سلام
من اين کار رو انجام دادم و جواب گرفتم mohsen_csharp (http://barnamenevis.org/forum/member.php?u=36508) جان
اما با ديگه هيچ کدوم از پنجره هام به صورت child باز نميشن.
و زمانی که دو کد زير رو باهم استفاده ميکنم خطا ميده :


Form1 login = new Form1();
login.MdiParent = this;
login.Owner = this;
login.Show();

مهدی فرزاد
شنبه 12 اردیبهشت 1388, 13:36 عصر
سلام
من هم دقيقا همين مشكل رو دارم و كدي رو كه دوستمون hamid67fathi نوشتن رو در برنامم نوشتم و خطا ميده.

captain_black81
یک شنبه 13 اردیبهشت 1388, 11:10 صبح
اول در فرم یک در کنترل لیبل خاصیت Modifiers=Public قرار بده سپس
در فرم یک


Form2 f2 = new Form2();
f2.Owner= this;
f2.ShowDialog();

در فرم دو


this.Owner.Controls["label1"].Text = "new text";

یا می تونی در فرم 2 برای راحتی کار از این کد هم استفاده کنی


(this.Owner as Form1).label1.Text = "new text";



من از کد بالا جواب گرفتم ولی وقتی با فرم1 به فرم 2 مقدار میفرستم کار نمیکنه
مثلا


form2 frm=new form2("myName");

جواب نمیده

hamid67fathi
سه شنبه 15 اردیبهشت 1388, 09:20 صبح
سلام چرا دو مشخصه زير با هم کار نميکنن و خطا ميدن ؟؟

Form1 login = new Form1();
login.MdiParent = this;
login.Owner = this;
login.Show();

hamid67fathi
چهارشنبه 16 اردیبهشت 1388, 10:34 صبح
يعنی کسی بلد نيست ؟؟

Open-Source
چهارشنبه 16 اردیبهشت 1388, 10:53 صبح
آقا ببخشد!

هنوز همون بحث ابتدای تاپیک هست؟!!!!!!!!!!!!!!:متعجب:

یعنی هنوز به نتیجه نرسیدید؟!!!!!!!!!!!!:گیج:

hamid67fathi
چهارشنبه 16 اردیبهشت 1388, 12:15 عصر
بله !!
سؤال اين هست :
چرا دو مشخصه زير با هم کار نميکنن و خطا ميدن ؟؟
کد:

Form1 login = new Form1();
login.MdiParent = this;
login.Owner = this;
login.Show();

mohsen_csharp
چهارشنبه 16 اردیبهشت 1388, 13:47 عصر
وقتی شما از فرم های mdi استفاده می کنید خوب فقط از MdiParent استفاده کنید.

hamid67fathi
دوشنبه 04 خرداد 1388, 17:33 عصر
حالا چطور ميشه از داخل يک کلاس به فرم پدر دسترسی داشت ؟

esmaeily-hosein
دوشنبه 04 خرداد 1388, 17:36 عصر
this.Parent as MainForm

hamid67fathi
دوشنبه 04 خرداد 1388, 18:24 عصر
توی خود کلاس مينويسم خطا ميده!
کجا بايد بنويسم ؟

hamid67fathi
سه شنبه 05 خرداد 1388, 14:09 عصر
توی خود کلاس مينويسم خطا ميده!
کجا بايد بنويسم ؟

hamid67fathi
سه شنبه 05 خرداد 1388, 14:13 عصر
يعنی همه مثل من بی سوادن ؟

esmaeily-hosein
چهارشنبه 06 خرداد 1388, 12:40 عصر
اینو تو کلاس فرزند باید بنویسی . و اسم فرم پدرت بزاری برای من اسمش MainForm بوده شاید برای تو یه چیز دیگه باشه .


this.Parent as formName

hassan_65
چهارشنبه 06 خرداد 1388, 17:33 عصر
سلام چرا دو مشخصه زير با هم کار نميکنن و خطا ميدن ؟؟

Form1 login = new Form1();
login.MdiParent = this;
login.Owner = this;
login.Show();

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

login.MdiParent = this;

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

login.Owner = this;

فقط خط اول کافیه و نیازی به نوشتن خط دوم نیست