PDA

View Full Version : طریقه کار بر روی سلول های DataGridView



Xmaster666
یک شنبه 27 بهمن 1387, 15:13 عصر
با سلام.

میخواستم بدونم چه جوری میشه داده هایی رو که وارد هر سلول DataGridView می کنیم به طور جداگانه در یک متغیر جداگانه ریخت.

با تشکر

h.jaza
یک شنبه 27 بهمن 1387, 16:33 عصر
روش های متفاوتی برای این کار هست که هر کدوم ساختار خاص خودشون رو داره و به تبع کاربر مخصوص به خود مثلا:



string str = dataGridView1.Rows[2].Cells[3].Value.ToString();


که میره سراغ ردیف دوم، ستون سوم و مقدار اون رو در رشته ی مورد نظر ذخیره می کنه.

همچنین خصوصیات دیگری مثل Columns، SelectedCells، SelectedRows، CurrentRow، CurrentColumn و خیلی های دیگه از این ها هستن که متناسب با کار شما، اونی رو که می خوای وست برآورده می کنه.

Xmaster666
یک شنبه 27 بهمن 1387, 20:34 عصر
مقداری که در متغیر ذخیره میشه به صورت رشته هست یا عدد ؟
چون من نیاز به عدد وارد شده در سلول دارم .

در ضمن برای اینکه در جدول در یک ستون به تعداد محدود اسم های مختلفی درج شود(به طور پیش فرض) باید از چه فرمانی استفاده کرد ؟

با تشکر از شما.

pnustudent110
دوشنبه 28 بهمن 1387, 18:03 عصر
اگه داده هاي ديتا گريد تعداد سطراش متغير هست شما بهترين كار اينه كه از سطر جاري استفاده كنيد و كل ديتا گريد رو به شكل ماتريس دو بعدي در نظر بگيريم.
و براي دسترسي به فيلد ها از اين كد استفاده كنيم.
dGV1.currentrow.cells[index].value.toString();

Xmaster666
دوشنبه 28 بهمن 1387, 19:17 عصر
خوب هنوز دو تا مشكل هست :

1-در كدي كه شما داديد منظور از عبارت index در داخل [] چيه ؟ من كه هر كار مي كنم برنامه error ميده .
2-مقداري كه وارد هر سلول ميشه در قالب رشته ذخيره ميشه يا عدد ؟ براي من كار با اعداد جدول مهم است .

يك سوال خارج از بحث هم دارم :
3- مي خوام با يك check box داده هاي يك ستون از سلولها رو فعال يا غير فعال كنم . هر چي سرچ كردم چيزي پيدا نكردم . در اين رابطه هم ممنون ميشم راهنمايي بفرماييد.

با تشكر

Xmaster666
دوشنبه 28 بهمن 1387, 19:52 عصر
اين هم فايل پروژه است كه با error روبروست . ممنون ميشم يه نگاهي بيندازيد .

h.jaza
دوشنبه 28 بهمن 1387, 20:52 عصر
مقداری که در متغیر ذخیره میشه به صورت رشته هست یا عدد ؟
مسلمه که رشتس ولی خوب خیلی ساده میشه تبدیلش کرد، با استفاده از متد های Convert ...

در ضمن برای اینکه در جدول در یک ستون به تعداد محدود اسم های مختلفی درج شود(به طور پیش فرض) باید از چه فرمانی استفاده کرد ؟
متوجه نمی شم، بیشتر توضیح بدین ...


1-در كدي كه شما داديد منظور از عبارت index در داخل [] چيه ؟ من كه هر كار مي كنم برنامه error ميده .

همون طور که در پست قبلیم گفتم، روش های متفاوتی برای دسترسی به یک سلول خاص هستش؛ کد pnustudent110 (http://barnamenevis.org/forum/member.php?u=61409) بیان می کنه که در ردیف جاری، سراغ ستون index ام برو (مثلا 2، 3، ...)

3- مي خوام با يك check box داده هاي يك ستون از سلولها رو فعال يا غير فعال كنم . هر چي سرچ كردم چيزي پيدا نكردم . در اين رابطه هم ممنون ميشم راهنمايي بفرماييد.

شما می تونید به عنوان مثال فیلد اول از یه ردیف دیتا گرید ویو رو به حالت CheckBox در بیارید و بعد به سادگی با چک کردن اون، سایر مقادیر اون ردیف رو فعال یا غیر فعال کنید.

پ ن: اینکه دیر جواب دادم، به این خاطر بود که یه مدتیه سیستم بوک مارک سایت برای من کار نمی کنه و به تبع نمی تونم متوجه بشم که آیا تاپیک مورد نظر ادامه پیدا کرده یا نه ...

Xmaster666
دوشنبه 28 بهمن 1387, 23:56 عصر
در ضمن طبق آنچه گفتيد در برنامه استفاده كردم ولي برنامه با اينكه كامپايل ميشه ولي بعد از اعمال يك كليد براي طي فرايند برنامه, با خطاي زير مواجه ميشم . اين به نظر شما مشكلش چي مي تونه باشه ؟

Xmaster666
چهارشنبه 30 بهمن 1387, 17:17 عصر
آقا مشكل تقريبا حل شد ولي همچنان در رابطه با غير فعال كردن يك ستون با check box با مشكل مواجه هستم . ممنون ميشم واضح تر راهنمايي بفرماييد .

با تشكر

h.jaza
پنج شنبه 01 اسفند 1387, 10:29 صبح
آقا مشكل تقريبا حل شد
???؟؟؟
و اما در مورد چک کردن چک باکس:



if (Convert.ToBoolean(dataGridView1.CurrentRow.Cells[0].EditedFormattedValue))
{
dataGridView1.CurrentRow.ReadOnly = true;
dataGridView1.CurrentRow.Cells[0].ReadOnly = false;
}
else
{
dataGridView1.CurrentRow.ReadOnly = false;
}