PDA

View Full Version : مبتدی: ارسال اطلاعات یک سطر از دیتا گرید به فرم جدید با دبل کلیک



ozzy_mra
شنبه 03 بهمن 1388, 14:44 عصر
سلام
من تو پروژم می خوام روی یک سطر از دیتا گرید وقتی دوبار کلیک می کنم یه فرم جدید باز بشه و اطلاعات اون سطر رو نمایش بده
من قبلاً این کارو با وبی 2003 انجام داده بودم ولی الان با سی شارپ نمی تونم
میشه راهنماییم کنید؟

slashslash2009
شنبه 03 بهمن 1388, 15:25 عصر
در رویداد Celldouble click میتونی اینکارو خیلی راحت انجام بدی و اگر کسی مخالفتی نداره از متغیرهای استاتیک واسه ردو بدل اطلاعات بین فرمهاتو استفاده کنید

SMRAH1
شنبه 03 بهمن 1388, 15:48 عصر
سلام
اتفاقا «اگر کسی مخالفتی نداره از متغیرهای استاتیک واسه ردو بدل اطلاعات بین فرمهاتو استفاده کنید» مخالف داره (چون این روش اصولی نیست و مشکلاتی رو می تونی به همراه داشته باشه)
بهترین راه اینکه بعد از فرمایش جناب slashslash2009 (http://barnamenevis.org/forum/member.php?u=90145) برای دریافت Celldoubleclick،در فرم دومت،یک سازنده داشته باشی که متغیری از نوع کلید جدولت دریافت کنه و کلید رو به فرم دوم پاس بدی (فرم دوم اطلاعات رو با استفاده از کلید ،از پایگاه داده دریافت می کنه) و ....

موفق باشید

hamidreza20
شنبه 03 بهمن 1388, 16:12 عصر
سلام دوست عزیز

برای اینکه بتونی وقتی رویداد دابل کلیک فراخوانی شد و یه فرم باز شد بتونی از فرم قبلی اطلاعات رو بخونی من کد زیر رو پیشنهاد میکنم. خودم تو همه پروژه ها استفاده می کنم



foreach (Form frm in Application.OpenForms)
{
if (frm is frm_main)
{
frm_main f1 = (frm_main)frm;
txt_box_kod_meli.Text = f1.dataGridView1.CurrentRow.Cells[1].Value.ToString();
txt_box_kod_meli.ReadOnly = true;
txt_box_last_name.Text = f1.dataGridView1.CurrentRow.Cells[2].Value.ToString();
txt_box_first_name.Text = f1.dataGridView1.CurrentRow.Cells[3].Value.ToString();
txt_box_father_name.Text = f1.dataGridView1.CurrentRow.Cells[4].Value.ToString();
txt_box_shenasname_number.Text = f1.dataGridView1.CurrentRow.Cells[5].Value.ToString();
txt_box_madrak_tahsili.Text = f1.dataGridView1.CurrentRow.Cells[6].Value.ToString();
txt_box_shoghl.Text = f1.dataGridView1.CurrentRow.Cells[7].Value.ToString();
txt_box_tel.Text = f1.dataGridView1.CurrentRow.Cells[8].Value.ToString();

}
}

جای frm_main نام فرمی که می خوای ازش اطلاعات رو پاس کنی تو فرم دیگه بنویس.
البته این کد را از برنامه هام کپی کردم شما باید جای تکست باکس ها و شماره سلولهای گرید رو طبق برنامه خودتون عوض کنید.

التماس دعا....

ozzy_mra
دوشنبه 05 بهمن 1388, 07:14 صبح
سلام دوست عزیز

برای اینکه بتونی وقتی رویداد دابل کلیک فراخوانی شد و یه فرم باز شد بتونی از فرم قبلی اطلاعات رو بخونی من کد زیر رو پیشنهاد میکنم. خودم تو همه پروژه ها استفاده می کنم



foreach (Form frm in Application.OpenForms)
{
if (frm is frm_main)
{
frm_main f1 = (frm_main)frm;
txt_box_kod_meli.Text = f1.dataGridView1.CurrentRow.Cells[1].Value.ToString();
txt_box_kod_meli.ReadOnly = true;
txt_box_last_name.Text = f1.dataGridView1.CurrentRow.Cells[2].Value.ToString();
txt_box_first_name.Text = f1.dataGridView1.CurrentRow.Cells[3].Value.ToString();
txt_box_father_name.Text = f1.dataGridView1.CurrentRow.Cells[4].Value.ToString();
txt_box_shenasname_number.Text = f1.dataGridView1.CurrentRow.Cells[5].Value.ToString();
txt_box_madrak_tahsili.Text = f1.dataGridView1.CurrentRow.Cells[6].Value.ToString();
txt_box_shoghl.Text = f1.dataGridView1.CurrentRow.Cells[7].Value.ToString();
txt_box_tel.Text = f1.dataGridView1.CurrentRow.Cells[8].Value.ToString();

}
}

جای frm_main نام فرمی که می خوای ازش اطلاعات رو پاس کنی تو فرم دیگه بنویس.
البته این کد را از برنامه هام کپی کردم شما باید جای تکست باکس ها و شماره سلولهای گرید رو طبق برنامه خودتون عوض کنید.

التماس دعا....

سلام
ممنونم از لطفتوم فقط می خواستن بدونم این کد رو کجا باید بنویسم تو رویداد دابل کلیک دیتا گرید؟؟

ozzy_mra
دوشنبه 05 بهمن 1388, 13:22 عصر
:عصبانی++:

ozzy_mra
سه شنبه 06 بهمن 1388, 11:21 صبح
مهندس جان من این کدو تو ایونت دبل کلیک گریدم بنویسم؟

daivid_ d31r1
پنج شنبه 15 بهمن 1388, 21:47 عصر
سلام دوستانم!
اره ozzy_mra
البته تو رویداد cellcontentdoubleclick مربوط به دیتا گرید

debugger
جمعه 16 بهمن 1388, 12:30 عصر
مهندس جان من این کدو تو ایونت دبل کلیک گریدم بنویسم؟

این کد را استفاده نکنی بهتره . چون اصلا ربطی به روی سوال نداره !!!!!!!!!!!!!!!!!!!!!!

slashslash2009
جمعه 16 بهمن 1388, 12:45 عصر
به تاریخ پست اول توجه کنید لطفا