PDA

View Full Version : فرستادن اطلاعات به فرم پدر



HAIdle
جمعه 14 مهر 1385, 14:17 عصر
سلام
من یه فرم توی برنامه ام دارم
از داخل اون فرم یه فرم جدید را باز میکنم
توی فرم جدید و قدیم یه text box دارم. می خوام وقتی یه دکمه خاص را در فرم جدید کلیک کرد
اطلاعات text box فرم جدید وارد text box فرم قدیم بشه.
لطفا راهنماییم کنید

HAIdle
شنبه 15 مهر 1385, 21:01 عصر
چرا کسی جواب نمیده
سوال را تکرار می کنم:
یه فرم داریم که فرزند یه فرم دیگه است می خواهیم از داخل اون فرم مثلا یک text box فرم پدر را تغییر دهیم
قبلا هم این سوال پرسیده شده ولی من نتونستم بازش کنم مثل این که پاک شده
ممنون می شم راهنماییم کنید

once4ever
شنبه 15 مهر 1385, 21:33 عصر
Form parentform=this.Parent;
parentform.controls["textBox1"].Text=this.textBox1.Tex;
یه چرخ اینجا میزدی خیلی دراین مورد بحث شده

محمد میرمصطفی
یک شنبه 16 مهر 1385, 12:24 عصر
من تو این سایت اقلا 4، 5 بار دقیقا همین سوالو دیدم.
گاهی جستجو قبل از سوال، بد نیست.

HAIdle
یک شنبه 16 مهر 1385, 12:33 عصر
تشکر
گفتم که!
من جست و جو کردم یه مورد هم پیدا کردم ولی باز نشد

HAIdle
یک شنبه 16 مهر 1385, 20:24 عصر
Form parentform=this.Parent;
parentform.controls["textBox1"].Text=this.textBox1.Tex;
یه چرخ اینجا میزدی خیلی دراین مورد بحث شده

این کد error میده
یکی در زمان کمپایل که میگه نمیتونه control را مستقیم به form تبدیل کنه
وقتی هم cast می کنم در زمان اجرا خط دومش error میده که این کنترل new نشده
اگه هم قبلا بحث شده میشه لینکش رو بذارید من پیدا نکردم

once4ever
یک شنبه 16 مهر 1385, 21:32 عصر
خوب من نمیدونستم شما چقدر کار کردید.
اگه برای فرم نتونستی مشکلش حل کنی! از کد زیر استفاده کن:
این کد در فرم دوم نوشته میشه.
درمورد cast هم فرض بر این شد که داخل فرم دوم یک تکست باکس بانام textBox1 داشته باشی و در فرم اول هم همینطور.
درضمن فرم دوم باید توسط فرم اول صدا زده بشه.
بازم نمیدونم کافی توضیح دادم یا نه

if (this.Parent != null)
{
Control parent = this.Parent;
parent.Controls["textBox1"].Text = textBox1.Text;
}

HAIdle
یک شنبه 16 مهر 1385, 22:22 عصر
مشکل برنامه ام را فهمیدم
مشکل اینه که this.parent فرم دوم من مساوی null است
ولی من فرم دوم را از داخل فرم اول صدا زده ام
پس چرا پدرش نول است؟

HAIdle
سه شنبه 18 مهر 1385, 12:22 عصر
سلام
ببخشید که من دوباره اومدم آخه مشکل برنامه ام هنوز حل نشده و برنامه را باید تا شب تحویل بدم
برا همین یه توضیح کامل از برنامه ام می دم تا بشه فهمید چرا پدر فرم دوم من نول میشه:
من توی برنامه ام یه فرم دارم که داخل اون یه button و یه text box دارم وقتی button کلیک میشه کد زیر اجرا میشه:


Form2 f2 = new Form2();
f2.showDialog();

حالا توی فرم دوم هم یه text box و یه button دارم که وقتی button کلیک میشه کد زیر اجرا میشه:


control par = this.parent;
par.controls["textBox1"].Text = textBox1.Text;
this.close();

ولی وقتی میرسه به این خط که text box را به روز کنه ERROR میده علتشم اینه که par نول است
بسیار بسیار متشکر میشم از راهنماییتون

once4ever
سه شنبه 18 مهر 1385, 14:50 عصر
از همون کد من در فرم دومت استفاده کن (با شرط if )
و تو فرم اول:

Form2 f2 = new Form2();
f2.Parent=this;
f2.showDialog();

HAIdle
سه شنبه 18 مهر 1385, 21:44 عصر
این error میده مثل اینکه نمیشه پدر فرم2 را از داخل این فرم تعریف کرد

once4ever
سه شنبه 18 مهر 1385, 22:35 عصر
ازاین مثال استفاده کن

SabaSabouhi
دوشنبه 24 مهر 1385, 12:08 عصر
با سلام
یک راه دیگه هم وجود داره.

در فرم فرزند یک Property تعریف کنید که نتیجه کار رو اونجا بگذاریم.



private int myResult;
public int Result{
get{return myResult;}
}


در فرم پدر هم به این شکل عمل کنید:



frmChild myForm = new frmChild();
if (myForm.ShowDialog = DialogResult.Ok){
myText.Text = myForm.Result;
}


شاید مشکل شما به این شکل راحت‌تر حل بشه.


صبا صبوحی

once4ever
دوشنبه 24 مهر 1385, 13:25 عصر
برای اینکه همزمان این تغییرات انجام بشه چه پیشنهادی داری؟