PDA

View Full Version : مبتدی: به چه صورت بعضی فیلد ها DataGrid های لایت شوند ؟



rayson
جمعه 20 بهمن 1391, 00:13 صبح
سلام دوستان.
من یک برنامه نوشتم اطلاعاتی از یک فرد ثبت میکنه , مثلا یک کومبو باکس اطلاعات استخدامی مثل دائم بودن کارمند یا قراردادی بودن آن ثبت میکنه مثل شکل ضمیمه شده. من میخوام , درون دیتا گرید ویو تمام کسانی که نوع استخدامیشون دائم بودن های لایت شه با یک رنگ خاص از بقیه.
من دقیقا نمیدونم چه کدی باید اضاف کنم که این عملیات رو برای من انجام بده. اگر امکانش هست من رو راهنمایی کنید .
مرسی.
99738

Mahmoud.Afrad
جمعه 20 بهمن 1391, 01:26 صبح
در یک متد با استفاده از حلقه رنگ سلول مورد نظر رو تغییر بدید. در رویداد SelectedIndexChanged کمبوباکس بر حسب مقدار انتخابی از کمبوباکس متد رو فراخوانی کنید.

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Color col = Color.Empty;
string noeEstekhdam = null;

switch (comboBox1.SelectedItem.ToString())
{
case "دائمی":
col = Color.GreenYellow;
noeEstekhdam = "daem";
break;
case "قراردادی":
col = Color.YellowGreen;
noeEstekhdam = "garardadi";
break;
case "روزمزدی":
col = Color.Orange;
noeEstekhdam = "roozmozd";
break;
}

this.dataGridView1.ClearSelection();
this.PaintRows(col, noeEstekhdam);
}

private void PaintRows( Color backColor , string noeEstekhdam)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells["estekhdam"].Value.ToString() == noeEstekhdam)
{
row.DefaultCellStyle.BackColor = backColor;
}
else
{
row.DefaultCellStyle.BackColor = Color.WhiteSmoke;
}
}
}

rayson
جمعه 20 بهمن 1391, 12:54 عصر
مرسی دوست من از کمکتون. قسمتی از کد خطا میده میگه نمیتونه پارامتر پیدا کنه .
9974999750

Mahmoud.Afrad
جمعه 20 بهمن 1391, 16:59 عصر
توی خط if (row.Cells["estekhdam"].Value.ToString() == noeEstekhdam) به اسم سلول خطا داده. اسم سلول رو برحسب اسم و یا اندیس ستون مربوط به نوع استخدام توی گریدویو اصلاح کنید.

rayson
شنبه 21 بهمن 1391, 11:41 صبح
کسی از دوستان نیست که مارو یاری کنه ؟؟
من دوباره کاری که میخوام صورت بگیره میگم.
من میخوام هرچی اطلاعات با نام " دائم " درون دیتا گرید ویو هست های لایت بشه.
لطفا به عکسهای بالا توجه کنید ، مخصوصا طریق ثبت اطلاعات درون دیتا بیس.
مرسی:(

rayson
شنبه 21 بهمن 1391, 15:32 عصر
یکی لطفا راهنمای بکنه:(

ma.rad
شنبه 21 بهمن 1391, 16:34 عصر
ساده ترین روش:
تو رویداد DataBiningCompelet دیتاگرید این کد رو بنویسید

for (int j = 0; j <= dataGridView1.RowCount - 1; j++)
{

if (dataGridView1[0,j].Value.ToString() == "دائم")

dataGridView1[0, j].Style.BackColor = Color.Red;

}

ma.rad
شنبه 21 بهمن 1391, 16:44 عصر
کد بالا فقط رنگ سلول هایی که حاوی متن مورد نظر بود رو تغییر می داد،
این کد رنگ سطر حاوی متن مورد نظر رو تغییر می ده:

for (int j = 0; j <= dataGridView1.RowCount - 1; j++)
{

if (dataGridView1[1,j].Value.ToString() == "دائم")

dataGridView1.Rows[j].DefaultCellStyle = new DataGridViewCellStyle()
{
BackColor = Color.Red
};

}

rayson
شنبه 21 بهمن 1391, 18:18 عصر
سلام دوست من ، ممنون .
خطا داد ضمیمه میکنم.
99830

khokhan
شنبه 21 بهمن 1391, 18:46 عصر
سلام دوست من ، ممنون .
خطا داد


دیتا گرید رنگی

ma.rad
شنبه 21 بهمن 1391, 19:24 عصر
سلام دوست من ، ممنون .
خطا داد ضمیمه میکنم.
99830

شما تو داده های داخل گرید ویو ، نوع استخدام رو چی تعریف کردید منظورم نوع عددی هست یا عبارت رشته ای؟

rayson
شنبه 21 بهمن 1391, 19:28 عصر
سلام . مرسی اما بازم جواب نداد .
برنامه خودم میگذارم برایم بی زحمت این تکه کد اضاف کنید .
من میخوام در تب دوم برنامه، کومبو باکس ،نوع استخدام " دائمی " که درج میشه درون گریدویو رنگی نشون بدش .
user and pw :admin
http://uploadtak.com/images/h6894_myTT.zip

ma.rad
شنبه 21 بهمن 1391, 19:40 عصر
سلام دوست من ، ممنون .
خطا داد ضمیمه میکنم.
99830

خب عزیز من شما باید به جای 1 عدد 5 می ذاشتی

ma.rad
شنبه 21 بهمن 1391, 19:56 عصر
اشتباه دوم نوشتی "دائم" اما توی جدول "دائمی"
یه نمونه تو جدول driver وارد کن تا خطای null بودن هم نگیره یا شرط بزار مثل این:

for (int j = 0; j <= DGV_driver.RowCount - 1; j++)
{

if (DGV_driver[5, j].Value != null)
{
if( DGV_driver[5, j].Value.ToString() == "دائمی")
DGV_driver.Rows[j].DefaultCellStyle = new DataGridViewCellStyle()
{
BackColor = Color.Red
};

}
}


اگر بازم نتونستی برنامه رو درست کردم بگو تا برات بزارم

rayson
شنبه 21 بهمن 1391, 23:05 عصر
ممنون دوست من .
با راهنمایی شما دوستان درست شد.
حالا فقط یک خواهش داشتم اگر امکانش هست خط ها را یکی یکی بگید دقیقا عملکردش چه چیزی هست.
ممنون.

ma.rad
سه شنبه 24 بهمن 1391, 16:00 عصر
ممنون دوست من .
با راهنمایی شما دوستان درست شد.
حالا فقط یک خواهش داشتم اگر امکانش هست خط ها را یکی یکی بگید دقیقا عملکردش چه چیزی هست.
ممنون.

توضیح چندانی نداره: شرط اول چک میکنه ستون مربوط به نوع استخدام خالی نباشه
شرط دوم چک می کنه کجا ستون مربوط به نوع استخدام برابر دائمی هست
بعد میاد برای سلول های سطر جاری یه استایل جدید ایجاد می کنه