PDA

View Full Version : سوال: رنگ بندی datagrid



amin joon
شنبه 25 خرداد 1387, 09:52 صبح
سلام

من ميخوام بر اساس مقادير موجود در يك ستون رنگ سطر هاي متناظر با آنها، تغيير پيدا كنه...

به نظر شما بهتره كد مربوط به رنگ بندي رو در زمان بايند كردن جدول به datagrid بنويسم يا اينكه اون رو در رويداد rowPrePaint پياده كنم؟؟؟

آيا راه ديگه اي هم وجود داره؟؟؟


با تشكر

amin joon
شنبه 25 خرداد 1387, 10:40 صبح
من يك تاپيك مشابه پيدا كردم.

http://barnamenevis.org/forum/showthread.php?t=104269&highlight=%D8%B1%D9%86%DA%AF


ولي فكر كنم بهترين محل قرار دادن كد در رويداد RowPrePaint هست....


( اين محدوديت هاي جستجو هم دردسري شده ها . . . آخه يكي نيست بگه چرا بايد بين هر جستجو 3 دقيقه منتظر بمونيم؟؟؟ مگه ما چه گناهي مرتكب شديم ؟؟؟ هااااااا؟؟؟؟ اون googleSearch هم كه قربونش برم بجاي اينكه داخل تالار بگرده، همه ي سايت رو زير و رو ميكنه . . . )


GoOd LuCk

.

hanieh66
دوشنبه 17 تیر 1387, 09:30 صبح
منم این سوال رو داشتم.من از رویداد RowPostPaint استفاده میکنم. می خواستم ببینم کار بهتری می شه کرد؟ بعضی وقتا که حجم داده موجود در دیتاگرید زیاد بشه کند کار می کنه

hdv212
دوشنبه 17 تیر 1387, 10:41 صبح
منم این سوال رو داشتم.من از رویداد RowPostPaint استفاده میکنم. می خواستم ببینم کار بهتری می شه کرد؟ بعضی وقتا که حجم داده موجود در دیتاگرید زیاد بشه کند کار می کنه
اگه بتونید در زمان بایند کردن این کارها رو انجام بدید خیلی بهتره تا اینکه از رویدادهای مربوط به Paint استفاده کنید، چون هر گونه تغییری که نیاز به ترسیم مجدد داشته باشه (مثل کشیدن پنجره روی کنترل و یا حتی بردون ماوس روی آن و ...)، باعث میشه تمام کدهای مربوط به رویداد ترسیم، اجرا بشه، و به خاطر همین هست که برنامه تون کند کار میکنه، سعی کنید در رویدادهای دیگه به غیر از Paint این اعمال رو انجام بدید.

hanieh66
سه شنبه 18 تیر 1387, 08:29 صبح
اگه بتونید در زمان بایند کردن این کارها رو انجام بدید خیلی بهتره تا اینکه از رویدادهای مربوط به Paint استفاده کنید، چون هر گونه تغییری که نیاز به ترسیم مجدد داشته باشه (مثل کشیدن پنجره روی کنترل و یا حتی بردون ماوس روی آن و ...)، باعث میشه تمام کدهای مربوط به رویداد ترسیم، اجرا بشه، و به خاطر همین هست که برنامه تون کند کار میکنه، سعی کنید در رویدادهای دیگه به غیر از Paint این اعمال رو انجام بدید.

در زمان بایند کردن منظورتون رو خوب متوجه نمی شم!! (منظورم پیاده سازیشه). می شه یه نمونه کوچک مثال بزنید. منظورتون اینه که مثلا وقتی که بایند می شه دیتاگریدم و اطلاعات توش fill می شه، حالا مثلا یک حلقه بذارم و روی دیتاگریدم حرکت کنم و مقادیر ستونهایی که می خوام رو ، چک کنم و در صورت نیاز رنگ اون سطر رو تغییر بدم؟؟؟؟؟؟ اره؟؟؟

Xcalivorse
سه شنبه 18 تیر 1387, 09:38 صبح
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
(if (e.RowIndex==2
{
;e.CellStyle.BackColor = Color.Red
}
}

در ضمن بوسیله e.value می تونی به مقدار سلول ها دسترسی داشته باشی.
نکته مهم اینکه با استفاده از این رویداد دیگه نیازی به استفاده از حلقه های تکرار نداری.