PDA

View Full Version : سوال: ويرايش داده هاي گريد ويو در فرم ديگر



myazdani
جمعه 31 تیر 1390, 19:42 عصر
سلام
دوستان من يه صفحه جست و جو دارم يه گريد ويو. كاربر مياد جست و جو انجام ميده و نتيج رو تو گريد مي بينه . تو گريد به دكمه تعريف كردم كه با فشار دادن اون صفحه ويرايش باز ميشه و تو صفحه ويرايش يه سري تكست باكس گذاشتم كه مي خوام اطلاعاتشو از سطر انتخاب شده گريد ويو پر كنم.

اول اومدم modifier گريد رو كردم public و يه شي جديد از فرم اولي new كردم و به هر زحمتي بود به ديتا گريد فرم صفحه جست و جو دسترسي پيدا كردم
حالا كه ميخوام تكست باكسها رو با داده هاي ديتا گريد پر كنم خطا ميده:ناراحت:
دستورم اينه:

.LetterMissiveNumberTxt.Text = LMP.dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[1].Value.ToString();

و خطا هم اين:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

دليل خطاشو نمي دونم

لطفا راهنمايي كنيد.ممنونم

ma.rad
جمعه 31 تیر 1390, 20:05 عصر
سلام دوست عزیز
بهتره به جای اینکه دیتاگرید رو پاس بدید دیتاتیبل رو پاس بدید

myazdani
جمعه 31 تیر 1390, 20:20 عصر
سلام دوست عزیز
بهتره به جای اینکه دیتاگرید رو پاس بدید دیتاتیبل رو پاس بدید

از پاسختون ممنون
ديتا گريد رو پاس ندادم . اومدم از ديتا گريد فرم اولم استفاده كردم . ناچارم از ديتا گريد فرم اولم استفاده كنم. چون بايد ركورد انتخاب شده رو ويرايش كنم و از طريق گريد ويو متوجه ميشم كدوم ركورد انتخاب شده

mmd2009
جمعه 31 تیر 1390, 21:48 عصر
با سلام

دوست عزیز اصلا نیازی نه به پاس دادن گرید ویو هست و نه پاس دادن دیتاتیبل

یک راه ساده اینه که شما دیتاگریدویورو رو برای اون فرم پاس بدید سپس بر اساس تعداد سلول هایی مورد نیازتون تکست باکسهارو پر بکنید

موفق باشید

myazdani
جمعه 31 تیر 1390, 23:02 عصر
با سلام

دوست عزیز اصلا نیازی نه به پاس دادن گرید ویو هست و نه پاس دادن دیتاتیبل

یک راه ساده اینه که شما دیتاگریدویورو رو برای اون فرم پاس بدید سپس بر اساس تعداد سلول هایی مورد نیازتون تکست باکسهارو پر بکنید

موفق باشید

از پاسختون ممنون
ببخشيد متوجه نشدم. بالاخره ديتا گريد رو پاس بدم يا ندم؟!
من فكر كنم سوالمو بد طرح كردم. اصلا چيزي رو پاس ندادم كلا!

ببينيد آقايون من تو فرم شماره 1 پارامتر جست و جو دريافت كردم جست و جو انجام دادم نتيجه رو تو گريد نشون دادم! .وقتي كاربر روي يه سطر گريد كليك كرد فرم شماره 2 نشون داده ميشه. حالا مي خوام اطلاعات سطر انتخاب شده گريد تو تكست باكسهاي مربوطه تو فرم شماره 2 نشون داده بشه.

كدي كه گذاشتم تو فرم شماره دو هست و LMP شي از نوع فرم اول هست كه تعريف كردم تا بتونم به كنترلهاي فرم اولم دسترسي داشته باشم! :متفکر:

حالا مشكلم اون پيغام خطايي است كه نوشتم!

mmd2009
جمعه 31 تیر 1390, 23:10 عصر
منظور من DataGridViewRow هستش

یعنی وقتی کاربر یک ردیف رو انتخاب میکنه شما اون ردیف رو نسبت میدید به DataGridViewRow و اونو پاس می دید به فرم بعدی و حالا اطلاعات هر سلولی مشخص هست

myazdani
جمعه 31 تیر 1390, 23:49 عصر
منظور من DataGridViewRow هستش

یعنی وقتی کاربر یک ردیف رو انتخاب میکنه شما اون ردیف رو نسبت میدید به DataGridViewRow و اونو پاس می دید به فرم بعدی و حالا اطلاعات هر سلولی مشخص هست

عذر تقصير دارم. منظورتون رو الان متوجه شدم.
مشكلم حل شد ولي با يه روش ديگه. از datagridviewRow نتونستم استفاده كنم. باهاش آشنا نبودم.
يه تابع سازنده برا فرم 2 تعريف كردم و مقادير سطر انتخاب شده رو توسط يك آرايه به فرم 2 فرستادم و حل شد!:لبخندساده: