PDA

View Full Version : سوال: اضافه کردن آیتم به ListBox از فرم 2 در فرم 1



kazem forghani
جمعه 22 آبان 1394, 08:34 صبح
سلام خدمت کاربرانی که بدون هیچ چشم داشتی به سوالات پاسخ می دن.
من برنامم به این صورته:
توی فرم 1 ( همون فرم نخست ) یک دکمه دارم که با کلیک کردن روی اون فرم 2 باز می شه. توی فرم 2 یک سری اطلاعات وارد می شه و با فشردن دکمه ok باید به ListBox فرم 1 یک آیتم اضافه بشه و بعد هم فرم 2 بسته شه. حالا نمی دونم چطوری این کار انجام می شه.
یعنی چطوری باید به اون ویو دسترسی داشته باشم از داخل فرم 2 !!
خیلی ممنون می شم کمک کنید.

brnevis
جمعه 22 آبان 1394, 09:28 صبح
سلام خدمت کاربرانی که بدون هیچ چشم داشتی به سوالات پاسخ می دن.
من برنامم به این صورته:
توی فرم 1 ( همون فرم نخست ) یک دکمه دارم که با کلیک کردن روی اون فرم 2 باز می شه. توی فرم 2 یک سری اطلاعات وارد می شه و با فشردن دکمه ok باید به ListBox فرم 1 یک آیتم اضافه بشه و بعد هم فرم 2 بسته شه. حالا نمی دونم چطوری این کار انجام می شه.
یعنی چطوری باید به اون ویو دسترسی داشته باشم از داخل فرم 2 !!
خیلی ممنون می شم کمک کنید.

شما باید ابتدا به design.csفرم 1 رفته و کد زیر را به Public تغییر دهید
private System.Windows.Forms.ListBox listBox1;
سپس در فرم 2 در رویداد کلیک دکمه ی خود یک شی از فرم یک بسازیدو ان را نشان دهید و فرم قبلی را ببیندید و سپس لیست با کس ان را مقدار دهی کنید که بصورت زیر می شود

Form1 f1 = new Form1();
f1.listBox1.Items.Add("\\اطلاعات خودتون رو");
Form.ActiveForm.Visible = false;
f1.Show();

elec60
جمعه 22 آبان 1394, 12:57 عصر
شما باید ابتدا به design.csفرم 1 رفته و کد زیر را به Public تغییر دهید
private System.Windows.Forms.ListBox listBox1;
سپس در فرم 2 در رویداد کلیک دکمه ی خود یک شی از فرم یک بسازیدو ان را نشان دهید و فرم قبلی را ببیندید و سپس لیست با کس ان را مقدار دهی کنید که بصورت زیر می شود

Form1 f1 = new Form1();
f1.listBox1.Items.Add("\\اطلاعات خودتون رو");
Form.ActiveForm.Visible = false;
f1.Show();

نبايد يك شي جديد از فرم ١ ساخت!!

elec60
جمعه 22 آبان 1394, 13:02 عصر
سلام خدمت کاربرانی که بدون هیچ چشم داشتی به سوالات پاسخ می دن.
من برنامم به این صورته:
توی فرم 1 ( همون فرم نخست ) یک دکمه دارم که با کلیک کردن روی اون فرم 2 باز می شه. توی فرم 2 یک سری اطلاعات وارد می شه و با فشردن دکمه ok باید به ListBox فرم 1 یک آیتم اضافه بشه و بعد هم فرم 2 بسته شه. حالا نمی دونم چطوری این کار انجام می شه.
یعنی چطوری باید به اون ویو دسترسی داشته باشم از داخل فرم 2 !!
خیلی ممنون می شم کمک کنید.

كافيه تو فرم دوم يك فيلد از نوع فرم اول داشته باشين و همچنين سازنده فرم ٢ متغييري از نوع فرم ١ داشته باشي و موقع نمونه سازي فرم ٢ از داخل فرم ١ نمونه و شي جاري فرم ١ رو با استفاده از كلمه كليدي this به سازنده فرم ٢ پاس بدين و تو بدنه سازنده فرم ٢ متغيير از نوع فرم ١ رو به فيلدي كه داخل فرم ٢ ساختين بريزين.
اينجوري داخل فرم ٢ به شي فرم ١ و تمامي type هاي قابل دسترس(به لحاظ Accsess Level) دسترسي دارين

kazem forghani
جمعه 22 آبان 1394, 14:49 عصر
كافيه تو فرم دوم يك فيلد از نوع فرم اول داشته باشين و همچنين سازنده فرم ٢ متغييري از نوع فرم ١ داشته باشي و موقع نمونه سازي فرم ٢ از داخل فرم ١ نمونه و شي جاري فرم ١ رو با استفاده از كلمه كليدي this به سازنده فرم ٢ پاس بدين و تو بدنه سازنده فرم ٢ متغيير از نوع فرم ١ رو به فيلدي كه داخل فرم ٢ ساختين بريزين.
اينجوري داخل فرم ٢ به شي فرم ١ و تمامي type هاي قابل دسترس(به لحاظ Accsess Level) دسترسي دارين
سلام
دوست عزیز می تونید با کد توضیح بدید ؟؟؟

kazem forghani
جمعه 22 آبان 1394, 16:33 عصر
سلام مجدد
دوستان کسی راهی نداره؟
راستی روش آقای brnevis رو رفتم ولی جواب نداد...

elec60
جمعه 22 آبان 1394, 16:50 عصر
سلام
دوست عزیز می تونید با کد توضیح بدید ؟؟؟


publicpartialclassForm1 : Form
{ public Form1() {
InitializeComponent();
}
privatevoid showForm2Btn_Click(object sender, EventArgs e)
{
Form2 frm2 = newForm2(this);
frm2.ShowDialog();
}
}


publicpartialclassForm2 : Form
{
Form1 objForm1;
public Form2(Form1 form1)
{
InitializeComponent();
objForm1 = form1;
}
privatevoid AddToForm1ListBoxBtn_Click(object sender, EventArgs e)
{
objForm1.listBoxInForm1.Items.Add(
"آيتم مد نظر");
this.Close();
}
}


وقتي از ويژوال استوديو پيست ميکنم فاصله ها زياد ميشه و وقتی دستی تو همينجا فاصله ها رو حذف می کنم مثل بالا بهم ميخوره!

کلا با اديتور اين سايت زياد مشکل دارم

kazem forghani
جمعه 22 آبان 1394, 19:37 عصر
publicpartialclassForm1 : Form
{ public Form1() {
InitializeComponent();
}
privatevoid showForm2Btn_Click(object sender, EventArgs e)
{
Form2 frm2 = newForm2(this);
frm2.ShowDialog();
}
}


publicpartialclassForm2 : Form
{
Form1 objForm1;
public Form2(Form1 form1)
{
InitializeComponent();
objForm1 = form1;
}
privatevoid AddToForm1ListBoxBtn_Click(object sender, EventArgs e)
{
objForm1.listBoxInForm1.Items.Add(
"آيتم مد نظر");
this.Close();
}
}


وقتي از ويژوال استوديو پيست ميکنم فاصله ها زياد ميشه و وقتی دستی تو همينجا فاصله ها رو حذف می کنم مثل بالا بهم ميخوره!

کلا با اديتور اين سايت زياد مشکل دارم


بفرمایید اینم درست.
وقتی نقل قول می کنم خودش درست می شه :d