PDA

View Full Version : سوال: مشکل در اضافه کردن به دیتاگرید در ارتباط فرم ها



Salar Ashgi
شنبه 20 تیر 1388, 20:57 عصر
سلام به همه دوستان عزیز ، این ارتباط بین فرم ها هم شده حل یک معادله n مجهولی ،

هر سری یکسری مسائل عجیب غریب بوجود میاد ، کاش میشد یه روش ساده و درست

واسش پیدا کرد (ببخشید کمی طولانی شد) : من دو تا فرم دارم ، تو فرم اول یه دیتاگرید

که modifier اش public هستش (البته داخل groupbox که اونم public) و 5 تا ستون داره

، تو فرم دوم 5 تا تکست باکس که قراره اطلاعاتش با یک باتن تو دیتاگرید add بشه ، که

این کار انجام نمیشه ؟؟!!!



privatevoid button1_Click(object sender, EventArgs e)
{
//=========== in Form 2 ===================
List<string> list = newList<string>();
Form1 F1 = newForm1();
for (int i = 0; i < F1.dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < 5; j++)
{
if (F1.dataGridView1.Rows[i].Cells[j].Value != null)
{
list.Add(F1.dataGridView1.Rows[i].Cells[j].Value.ToString());
}
}
}
//==================================
this.Close();
MessageBox.Show(list.Count.ToString());
F1.ShowDialog();

}


من میخوام اطلاعات رو از کالکشن به دیتاگرید منتقل کنم ، ولی واسه تست تعداد اعضای

کالکشن ،تعداد اعضاشو همیشه صفر نشون میده !!!؟؟؟

ممنون میشم اگه راهنمایی کنید !!!!

Ali_Mor
یک شنبه 21 تیر 1388, 01:42 صبح
دوست عزیز
باید هم مقدار این کالکشن صفر باشه.
شما در کد بالا F1 را از نوع فرم newکرده اید. یعنی آن را ساخته اید. معلوم است در دیتاگرید فرمی که تازه ساخته اید هنوز هیچ دادهای قرار ندارد که بخواهید آن را در یک لیست قرار دهید.
اگر میخواهید به فرمی که قبلا ایجاد شده است و باز است، مقداری را بفرستید یا از آن مقداری را بخوانید، باید به شی آن فرم ارجاع داشته باشید، نه اینکه یک فرم دیگر از آن نوع بسازید

Mohsen229266
یک شنبه 21 تیر 1388, 12:27 عصر
سلام دوست عزیز این برنامه رو ببین

Salar Ashgi
یک شنبه 21 تیر 1388, 15:26 عصر
دوست عزیز
باید هم مقدار این کالکشن صفر باشه.
شما در کد بالا F1 را از نوع فرم newکرده اید. یعنی آن را ساخته اید. معلوم است در دیتاگرید فرمی که تازه ساخته اید هنوز هیچ دادهای قرار ندارد که بخواهید آن را در یک لیست قرار دهید.
اگر میخواهید به فرمی که قبلا ایجاد شده است و باز است، مقداری را بفرستید یا از آن مقداری را بخوانید، باید به شی آن فرم ارجاع داشته باشید، نه اینکه یک فرم دیگر از آن نوع بسازید

میشه یک نمونه کدی با این روش ارائه کنید ، ممنون از لطف شما !!!

Ali_Mor
دوشنبه 22 تیر 1388, 01:18 صبح
سلام دوست عزیز
این هم یک مثال ساده

Salar Ashgi
دوشنبه 22 تیر 1388, 10:37 صبح
سلام دوست عزیز
این هم یک مثال ساده

ممنون ، ولی این پروژه تو VB بود ، اگه تو #C باشه بهتر میشه !!!

h.jaza
دوشنبه 22 تیر 1388, 14:02 عصر
اولا تا حالا هزاران و صد ها هزار بار انتقال اطلاعات بین چند تا فرم مطرح شده و در هموش بدون استثنا ذکر شده که تغییر Modifier یه کنترل برای فرستادن اطلاعات از یه فرم به فرم دیگه، امری است 100% اشتباه و مغایر اصول برنامه نویسی کلاس اول دبستان چه برسه به سطوح بالاتر (سطح شما دوست عزیز) و بعد از اشاره به این نکته ی مهم و حیاتی راه حل های موجود ذکر شده مثلا یکیش فرستادن مقادیر مورد نظر به عنوان آرگومان به تابع سازنده ی فرم دوم و یا روش دیگه ست کردن یه سری پروپرتی در فرم اول و بهره گیری از اونها در فرم دوم و یا ...

علی ای حال، بازم میگم تغییر Modifier فاجعه آمیز ترین و ... ترین حرکتیه که یه برنامه نویس می تونه در کدش انجام بده.