چند مشکل در ارتباط 2تا فرم
باسلام
1)من دو فرم دارم که در هر دو فرم لیست باکس با مقدیر پُرشده وجود داره حالا میخوام با کلیک روی مقادیر هرکدوم از این لسیت باکس ها معادلش در لیست باکس فرم دیگه سلکت بشه (SelectedIndex)
2)دوتا فرم باز شده دارم حالا میخوام بدون اینکه نمونه جدیدی از فرم1 ایجاد کنم دستورات رویداد لود فرم1 از تو فروم2 اجرا بشه
:اشتباه:
نقل قول: چند مشکل در ارتباط 2تا فرم
میشه بیشتر توضیح بدی، 2 تا فرمت همزمان بازند؟
نقل قول: چند مشکل در ارتباط 2تا فرم
نقل قول:
نوشته شده توسط
M_Tavakoli_70
میشه بیشتر توضیح بدی، 2 تا فرمت همزمان بازند؟
آره هر 2تا فرم همزمان باز هستن
نقل قول: چند مشکل در ارتباط 2تا فرم
میتونی یک لیست پابلیک بسازی و اطلاعات لیست باکستو توش بریزی وقتی سلکت شد مقدارو بریزی توی اون لیستت بعد اون لیستتو به فرم بعدیتم وصل کنی
فک کنم اینجوری جواب بده
نقل قول: چند مشکل در ارتباط 2تا فرم
نقل قول:
نوشته شده توسط
hamid_0341
میتونی یک لیست پابلیک بسازی و اطلاعات لیست باکستو توش بریزی وقتی سلکت شد مقدارو بریزی توی اون لیستت بعد اون لیستتو به فرم بعدیتم وصل کنی
فک کنم اینجوری جواب بده
نه نشد!
اگه میشه نمونه بزار
نقل قول: چند مشکل در ارتباط 2تا فرم
بفرما ببین من دوتا فرمم بازه ولی وقتی که توی فرم 2 چیزی اضافه میکنم توی فرم 1 اضافه میشه
http://uploadboy.com/4h7zy2yhiz6c.html
نقل قول: چند مشکل در ارتباط 2تا فرم
نقل قول:
نوشته شده توسط
hamid_0341
مرسی دوست عزیز ولی مشکل من این نبود!!
سوال من اینه:
نقل قول:
حالا میخوام با کلیک روی مقادیر هرکدوم از این لسیت باکس ها معادلش در لیست باکس فرم دیگه سلکت بشه (SelectedIndex)
حالا میخوام بدون اینکه نمونه جدیدی از فرم1 ایجاد کنم دستورات رویداد لود فرم1 از تو فروم2 اجرا بشه
نقل قول: چند مشکل در ارتباط 2تا فرم
دوستان نظری ندادرم!:عصبانی++:
نقل قول: چند مشکل در ارتباط 2تا فرم
از اساتید کسی تو این زمینه کار نکرده؟
من واقعا به حل اینها واسه برنامه ام نیاز دارم
نقل قول: چند مشکل در ارتباط 2تا فرم
روش انجام کارو برات توضیح میدم کد نویسی با خودت. دوتا فرم داریم 1 و 2 ؛میخوایم با انتخاب یک ایتم از فرم یک معادل همون ایتم تو فرم 2 انتخاب بشه ، برای این کار اولین قدم اینه که باید از فرم 1 دسترسی داشته باشیم به فرم 2 و در ضمن به نمونه قرار گرفته در حافظه دسترسی داشته باشیم خب برای این کار میتونی از قطعه کد زیر استفاده کنی
(Form2)Application.OpenForms["Form2"]
خب قطعه کد بالا چیکار میکنه ؟ میاد نمونه ی ایجاد شده از فرم 2 رو برمیگردونه که از نوع Form هست مقدار بازگشتی که ما برای دسترسی به اجزا فرم 2 نیازه که اونو cast کنیم به فرم 2
خب حالا شما کافیه ی دونه . بذاری بعدش و لیست باکستون و یا هر کنترل و شی دیگه ای که با سطح دسترسی public تعریف شدن رو تغییر بدین ؛ این ی راه بود
راه دوم هم شبیه همین و اینکه شما نمونه ساخته شده از فرم 2 رو پیدا میکنین با این تفاوت که این بار یک خاصیت برای فرم 2 تعریف کردین با سطح دسترسی public که بعد از بدست اوردن نمونه ساخته شده از فرم 2 مقدار خاصیت تعریف شده رو ست میکنین و اونجا توی دستور set بهش میگین که مقدار فرستاده شده رو توی لیست باکس پیدا کنه
موفق باشی
نقل قول: چند مشکل در ارتباط 2تا فرم
نقل قول:
نوشته شده توسط
mousa1992
روش انجام کارو برات توضیح میدم کد نویسی با خودت. دوتا فرم داریم 1 و 2 ؛میخوایم با انتخاب یک ایتم از فرم یک معادل همون ایتم تو فرم 2 انتخاب بشه ، برای این کار اولین قدم اینه که باید از فرم 1 دسترسی داشته باشیم به فرم 2 و در ضمن به نمونه قرار گرفته در حافظه دسترسی داشته باشیم خب برای این کار میتونی از قطعه کد زیر استفاده کنی
(Form2)Application.OpenForms["Form2"]
خب قطعه کد بالا چیکار میکنه ؟ میاد نمونه ی ایجاد شده از فرم 2 رو برمیگردونه که از نوع Form هست مقدار بازگشتی که ما برای دسترسی به اجزا فرم 2 نیازه که اونو cast کنیم به فرم 2
خب حالا شما کافیه ی دونه . بذاری بعدش و لیست باکستون و یا هر کنترل و شی دیگه ای که با سطح دسترسی public تعریف شدن رو تغییر بدین ؛ این ی راه بود
راه دوم هم شبیه همین و اینکه شما نمونه ساخته شده از فرم 2 رو پیدا میکنین با این تفاوت که این بار یک خاصیت برای فرم 2 تعریف کردین با سطح دسترسی public که بعد از بدست اوردن نمونه ساخته شده از فرم 2 مقدار خاصیت تعریف شده رو ست میکنین و اونجا توی دستور set بهش میگین که مقدار فرستاده شده رو توی لیست باکس پیدا کنه
موفق باشی
مشکلم حل نشد میشه واسه (SelectedIndex) لیست باکس ها یه نمونه بزاری!:متفکر:
1 ضمیمه
نقل قول: چند مشکل در ارتباط 2تا فرم
نقل قول:
نوشته شده توسط
Reza,M
مشکلم حل نشد میشه واسه (SelectedIndex) لیست باکس ها یه نمونه بزاری!:متفکر:
ارتباط .............:لبخند:
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.listBox1.Items.AddRange(this.listBox1.Items);
f2.Show();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Form2 f2 = (Form2)Application.OpenForms["Form2"];
f2.listBox1.SelectedItem= this.listBox1.SelectedItem.ToString();
f2.Show();
}
نقل قول: چند مشکل در ارتباط 2تا فرم
دوست عزیز مشکل من اینجاست که اولا مقادیر دوتا فرم باهم متفاوت هستند دوما اگر بر روی آیتم های لیست باکس فرم1 کلیک کنم [بدون اینکه فرم2 باز باشه] با خطا مواجه میشم همچنین میخوام این خاصیت در هر دولیست باکس باشه
نقل قول: چند مشکل در ارتباط 2تا فرم
نقل قول:
نوشته شده توسط
Reza,M
دوست عزیز مشکل من اینجاست که اولا مقادیر دوتا فرم باهم متفاوت هستند دوما اگر بر روی آیتم های لیست باکس فرم1 کلیک کنم [بدون اینکه فرم2 باز باشه] با خطا مواجه میشم همچنین میخوام این خاصیت در هر دولیست باکس باشه
روش khokhan تا حدی درسته ولی برای جلوگیری از خطا وقتی که فرم2 باز نیست میتونید رویداد listBox1_SelectedIndexChanged در فرم 1 رو به صورت زیر تغییر بدید
همچنین اگر تعداد آیتمها در دو لیست باکس فرق داشته باشد جهت جلوگیری از خطا مبنی بر عدم وجود اندیس در محدوده مجاز میتوانید کد را به صورت زیر تغییر دهید
البته من بجای استفاده از خاصیت listBox1.SelectedItem از خاصیت SelectedIndex استفاده کردم
به کد زیر توجه کنید
if (Application.OpenForms["Form2"] != null)if (Application.OpenForms["Form2"] != null)
{
Form2 f2 = (Form2)Application.OpenForms["Form2"];
int index = this.listBox1.SelectedIndex;
if (f2.listBox1.Items.Count >= index+1)
{
f2.listBox1.SelectedIndex = this.listBox1.SelectedIndex;
f2.Show();
}
}
و همین کدها رو در فرم 2 جهت کنترل لیست باکس فرم 1 بنویسید(کافیه بجای Form2 بنویسید Form1) تا وقتی که بر روی آیتمهای لیست باکس از فرم2 کلیک میکنید اندیس لیست باکس از فرم1 نیز تغییر نماید
برای آزمایش بهتر رویداد button1_Click در فرم 1 رو به صورت زیر تغییر دهید
Form2 f2 = new Form2();
f2.Show();
و در فرم 2 آیتمهای لیست باکس رو به صورت دستی وارد کنید(نیازی نیست تا تعداد آیتمها در هردو لیست باکس از نظر مقدار و تعداد برابر باشند)
نقل قول: چند مشکل در ارتباط 2تا فرم
:تشویق:
Mohammadm بسیار ممنون