سلام
من در یه فرمم یه دیتاگریدویو دارم و داخلشو پر می کنم و می خواهم اطلاعات این دیتاگریدویو فرم 1 به دیتاگریدویو فرم دوم ارسال بشه و اطلاعاتشون یکی بشود .
ممنون
اگه بد توضیح دادم بگید دوباره یگم .
سلام
من در یه فرمم یه دیتاگریدویو دارم و داخلشو پر می کنم و می خواهم اطلاعات این دیتاگریدویو فرم 1 به دیتاگریدویو فرم دوم ارسال بشه و اطلاعاتشون یکی بشود .
ممنون
اگه بد توضیح دادم بگید دوباره یگم .
خب این فور رو بنویسید:
Form2 f2=new Form2();
for(i=0; i<datagridview1.columns.count; i++)
{
f2.datagridview.columns[i]=datagridview1.columns[i];
}
foreach(datagridviewrow row in datagridview1.rows)
{
f2.datagridview.rows.add(row);
for(j=0;j<datagridview1.columns.count;j++)
{
f2.datagridview.rows[(int)f2.datagridview.rows.count-1].cells[j].value=row.cells[j].value;
}
}
f2.show();
سلام
من کدهایی که گفتید رو نوشتم ولی وقتی f2. رو می زنم به جای datagridview ، عبارت databinding رو می یاره
می شه یکم راهنمایی کنید
سلام دوست عزیز . میتونین نمونش رو از لینک زیر دانلود کنید :
http://greendeveloper.ir/files/GD_Gridview.zip
مرسی من نمی خوام تمام ستونهای datagrid فرم 1 رو به datagrid فرم2 ارسال کنم ؟
باید چیکار کنم ؟
دوست عزیز موهای خودتو نکن!!!! کامل توضیح بده چی میخوای؟
کد زیر رو جایگزین کد درون اونت کلیک Button1 بکن :
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
DataTable dt = ((DataTable)dataGridView1.DataSource).Copy();
dt.Columns.RemoveAt(1);
frm.dt = dt;
frm.Show();
}
برای هر ستونی که نمیخوای وجود داشته باشه از
dt.Columns.RemoveAt(n);
استفاده کن ، برای اینکه منطقش برات سخت نشه از آخر Remove کن ، فرض بخوای ستون 0،4،7 رو پاک کنی اینجوری بنوس :
dt.Columns.RemoveAt(7);
dt.Columns.RemoveAt(4);
dt.Columns.RemoveAt(0);
میشه بگید این Error که برای خط * داده برای چیه ؟form2 f2 = new form2();
for( int i =0;i<DGV1.columns.count;i++);
*f2.DGV.columns[i] = DGV1.columns[i];
ERROR :
property or indexer 'System.Windows.Forms.DataGridViewColumnCollection .this[int]'cannot be assigned to --it is read only
نمیتونین به این شکل دو تا ستون رو به هم انتساب بدی ! همانطور که توی error آماده ستون ها Readonly هستن ، نمیتونین به هم انتساب بدین ، باید مشخصاتی که میخوای رو خودت ست کنی . مثل : columns[i].Caption="test"
مرسی از راهنماییتون
میشه حالت ستونها از readonly تغییر بدم ؟
نه ، شما نمیتونین با این روش به هیچ وجه انتساب انجام بدین !
کاری که میخواید بکنید رو دقیق توضیح بدید ، تا بتونم راهنماییتون کنم .
برنامه ام در رابطه با یک رستوران ، من می خوام گارسون اطلاعات سفارش مشتری رو که تو Gridview هست و با زدن check box مشخص می شه رو بگیره بعد اون رو بفرسته به فرم صندوق تا اونجا با استفاده از اطلاعات صندوق و یکسری اطلاعات که از جدول می گیره فاکتور را صادر کنه البته چون نمی دونستم اطلاعات فاکتور را چه جوری به شکل جدول روی فرم نایش بدم می خواستم از grid استفاده کنم بعد با زدن button چاپ مثل فیشهای رستوران برام چاپ کنه
این یک بخشی از پروژه پایان نامه ام هستش
دوست عزیز یعنی شما برای گرفتن سفارش و بعدش رفتن اطلاعات سفارش مشتری به صندوق ، میخوای 2 تا فرم بزاری ، بعد تو یکی اطلاعات رو پر کنی بعد دکمه صندوق رو زدی اطلاعات از این فرم به فرم صندوق بره !؟!
اگر الگوریتم تون اینی باشه که بنده متوجه شدم زیاد جالب نیست ، اگر قرار است سفارش سرپایی صورت بگیره و همون موقغ پرداخت شه (مثل بشتر فست فود ها) اصلا 2 تا فرم نیاز ندارین ، تو همین فرم سفارش رو میگیرین و فاکتور رو صادر میکنین دیگه .
اما اگر قراره سفارش گرفته بشه و بعدا مشتری به صندوق مراجعه کنه ، اصلا روش شما جواب نمیده . حتما باید سفارش توی دیتابیس ذخیره بشه
قراره بعد از سرو غذا به صندوق مراجعه کنند پس باید چیکار کنم ؟
در خصوص ارور ، کد رو تست کردم براتون گذاشتم . تا بقیه کدتون رو ندید که چجوری Datasource رو وارد میکنید نمیتوتن راهنمایتون بکنم .
اصولش اینکه یک جدول به نام سفارش بسازید و موقع تسویه اطلاعات رو از جدول فراخوانی کنید نه از دیتاگرید صفحه قبل ! چون ممکنه مثلا من بیام غذا سفارش بدم ، تا وقتی که من نیام صندوق شما نمیتونید فرم سفارش من رو بندید چون اطلاعات سفارش من پاک میشه ! به همین دلیل رستوران سفارش نمیتونه از کس دیگه ای بگیره چون من غذام تمام نشده :دی
مرسی ، میشه یک راهنمایی کنید که چطوری اطلاعات یک grid که چند تا ستون داره رو بریزم تو datatable برای سطرهاش می دونم حلقه for باید بزارم ولی برای ستونها نمی دونم باید چیکار کنم
DataTable dtable = new DataTable();
foreach(DataGridViewColumn dc in dataGridView1.Columns)
{
dtable.Columns.Add(dc.HeaderText);
}