PDA

View Full Version : انتقال اطلاعات یک datagridview به گرید دیگر در فرم دیگر



negar.rafie
دوشنبه 14 اردیبهشت 1394, 19:37 عصر
سلام
چطوری میتونم کل اطلاعات یک گرید را به گرید دیگر در فرم دیگر انتقال بدم؟
ممنون

Mofid.m
دوشنبه 14 اردیبهشت 1394, 19:55 عصر
درود به شما دوست عزیز
میتونی از دیتا تیبل استفاده کنی

negar.rafie
دوشنبه 14 اردیبهشت 1394, 19:58 عصر
میشه مثال بزنید

plus
دوشنبه 14 اردیبهشت 1394, 20:08 عصر
اطلاعات چطوری در Grid نمایش داده میشه؟ آیا Bind شده یا نه؟

Mofid.m
دوشنبه 14 اردیبهشت 1394, 20:24 عصر
اول بیا در فرمی که میخوای نمایش بدی برای دیتاگرید خاصیت Modifires رو برابر public بزار



DataTable dt = new DataTable();
dt.Columns.Add("col1");
dt.Columns.Add("col2");
dt.Columns.Add("col3");
dt.Columns.Add("col4");


for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
dt.Rows.Add(dataGridView1.Rows[i].Cells[0].Value, dataGridView1.Rows[i].Cells[1].Value,
dataGridView1.Rows[i].Cells[2].Value, dataGridView1.Rows[i].Cells[3].Value);
}


Form2 f2 = new Form2();
f2.dataGridView1.DataSource = dt;
f2.ShowDialog();


البته اگر از قبل دیتا تیبل رو از جایی خوندی مثلا بانک نیازی به این کارا نیست.
این مال زمانیه که دستی به گرید مقدار دادی

negar.rafie
دوشنبه 14 اردیبهشت 1394, 22:11 عصر
اطلاعات چطوری در Grid نمایش داده میشه؟ آیا Bind شده یا نه؟

خیر به صورت تک به تک سطرها وارد شدن و همینطور ستون ها را هم دستی ایجاد کردم؟
میشه از هر دو مثال بزنید؟
ممنون

plus
دوشنبه 14 اردیبهشت 1394, 22:44 عصر
خیر به صورت تک به تک سطرها وارد شدن و همینطور ستون ها را هم دستی ایجاد کردم؟
میشه از هر دو مثال بزنید؟
ممنون
همین مثالی که دوستمون زدن رو میتونید دنبال کنید. داده ها رو از DGV بخونید و در یک شی مثل DataTable قرار بدین و اون رو به مقصد ارسال کنید.
اگه از Binding استفاده کرده بودین کافی بود DataSource مبدا به به مقصد انتساب بدین.

negar.rafie
دوشنبه 14 اردیبهشت 1394, 22:55 عصر
خاصیت Modifires رو برابر public کنم مشکل نداره؟
فکر کنم نباید این کار را بکنیم؟

Mofid.m
دوشنبه 14 اردیبهشت 1394, 23:03 عصر
چه مشکلی داره؟
میتونی این کارو نکنی
در عوض بیای تو فرم دوم یه دیتا تیبل رو بصورت public تعریف کنی بهد این دیتا تیبل رو به دیتا تیبل دوم نسبت بدی.
یا از یه کلاس جدا استفاده کنی.
در هر حال شما نیاز به یه Public Object داری تا بشه از هر دو فرم بهش دسترسی داشت.

csharp.net
سه شنبه 15 اردیبهشت 1394, 07:12 صبح
با فرض اینکه در فرم اول یک دیتاگرید به نام dataGridView1 و یک دکمه داشته باشیم و در فرم دوم دیتاگریدی دیگر با نام dataGridView2 داشته باشیم، برای دسترسی به رکوردهای دیتاگرید فرم اول در دیتاگرید فرم دوم ابتدا خاصیت modifire دیتاگرید فرم دوم را برابر public قرار دهید و سپس بر روی دکمه فرم اول دوبار کلیک کرده و کدهای زیر را در داخل آن بنویسید :

var frm2 = new Form2();
frm2.dataGridView2.DataSource = this.dataGridView1.DataSource;
frm2.Show();


منبع : w3-farsi.com (http://www.w3-farsi.com/%DA%86%DA%AF%D9%88%D9%86%DA%AF%DB%8C-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-datagridview-%D9%81%D8%B1%D9%85-%D8%A7%D9%88%D9%84-%D8%AF%D8%B1-datagridview-%D9%81%D8%B1%D9%85-%D8%AF/)