PDA

View Full Version : (خاصيت هاي گريد)انتخاب تعدادي از ركورد هاي در نظر گرفته شده و تغيير رنگ آن ركورد ها ؟؟



RIG000
دوشنبه 09 بهمن 1391, 22:59 عصر
با سلام
دوستان قصد من از عنوان تاپيك اين هست كه ميخام با يك شرط كه يك مقدار عددي هست و از يك تكست باكس ميگيرم و مقايسه اون با ستون 5 دينتا گريد ويو و تغيير رنگ اون ركورد مورد نظر!
مثال :

for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (textBox5.Text == dataGridView1.CurrentRow.Cells[4].Value.ToString())
{

}
}

اينجا من ميخام كه كل ركورد هاي ديتاگريد ويو رو جستجو كنم ! و مابين اون ؛ اونهايي كه مقدارهايي در ستون 2قرار گرفته شده با اون چك بشه و رنگش عوض شه!
حالا مافرض ميگيرم تو تكست باكس ما عدد 5 هست و كلا" 20 ركورد داريم كه درمابين اين 20 تا در ستون 5 ما 8 تا عدد 2 هست كه بعد از سرچ بايد رنگش تغيير كنه! و مابقي تو همون حالت عادي بمونه!
اينجا من نمي دونم چطوري ركورد مورد نظر رو سرچ كنم و ركوردش رو هاي لايت كنم.
متشكرم .
فوري هست دوستاي عزيزم.

khokhan
دوشنبه 09 بهمن 1391, 23:15 عصر
با سلام
دوستان قصد من از عنوان تاپيك اين هست كه ميخام با يك شرط كه يك مقدار عددي هست و از يك تكست باكس ميگيرم و مقايسه اون با ستون 5 دينتا گريد ويو و تغيير رنگ اون ركورد مورد نظر!
مثال :

for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (textBox5.Text == dataGridView1.CurrentRow.Cells[4].Value.ToString())
{

}
}

اينجا من ميخام كه كل ركورد هاي ديتاگريد ويو رو جستجو كنم ! و مابين اون ؛ اونهايي كه مقدارهايي در ستون 2قرار گرفته شده با اون چك بشه و رنگش عوض شه!
حالا مافرض ميگيرم تو تكست باكس ما عدد 5 هست و كلا" 20 ركورد داريم كه درمابين اين 20 تا در ستون 5 ما 8 تا عدد 2 هست كه بعد از سرچ بايد رنگش تغيير كنه! و مابقي تو همون حالت عادي بمونه!
اينجا من نمي دونم چطوري ركورد مورد نظر رو سرچ كنم و ركوردش رو هاي لايت كنم.
متشكرم .
فوري هست دوستاي عزيزم.



private void textBox1_TextChanged(object sender, EventArgs e)
{
//if (Char.IsLetter(e.KeyChar))
//{
for (int i = 0; i < (productDataGridView.Rows.Count); i++)
{

if (productDataGridView.Rows[i].Cells[1].Value.ToString().StartsWith(textBox1.Text, true, CultureInfo.InvariantCulture))
{
productDataGridView.FirstDisplayedCell = productDataGridView[1, i];
productDataGridView.CurrentRow.DefaultCellStyle.Ba ckColor = System.Drawing.Color.Red;
return; // stop looping
}
}
}

khokhan
دوشنبه 09 بهمن 1391, 23:18 عصر
private void textBox1_TextChanged(object sender, EventArgs e)
{
try
{
productDataGridView.ClearSelection(); //or restore rows backcolor to default
for (int i = 0; i < (productDataGridView.Rows.Count); i++)
{
if (productDataGridView.Rows[i].Cells[1].Value.ToString().StartsWith(textBox1.Text, true, CultureInfo.InvariantCulture))
{
productDataGridView.FirstDisplayedScrollingRowInde x = i;
productDataGridView.Rows[i].Selected = true; //It is also possible to color the row backgroud
return;
}
}
}
catch (Exception)
{
}
}

RIG000
دوشنبه 09 بهمن 1391, 23:45 عصر
ممنون از جواب شما .
اما يه مشكلي هست كه اگه ما عدد 2 رو بنويسيم سرچ انجام ميشه اما به اولين سسلولي كه عدد 2 داخلش هست رو پيدا ميكنه . تا اينجا درست . اما من ميخام تمام ركورد هايي كه تو ستون مورد نظر عدد 2 هست رو هاي لايت كنه!
يعني من چند تا سطر پايين تر باز عدد 2 رو دارم اما فقط همون اوليني كه پيدا شده بود هاي لايت بود!
ميخام چند تا ركوردي كه عدد 2 داخل سلول مورد نظر هست هايلايت بشه.
منونم

khokhan
دوشنبه 09 بهمن 1391, 23:49 عصر
اگه بتونی سورس بزاری بهتر می شه
من که سورسشو ندارم همینطوری قضنقورتی نوشتم

RIG000
سه شنبه 10 بهمن 1391, 00:07 صبح
سورس كه همونيه كه شما نوشتي دوست من ! من كاريش نكردم!


private void textBox5_TextChanged(object sender, EventArgs e)
{
dataGridView1.ClearSelection(); //or restore rows backcolor to defaultfor
for (int i = 0; i < (dataGridView1.Rows.Count ); i++)
{
if (dataGridView1.Rows[i].Cells[4].Value.ToString().StartsWith(textBox5.Text, true, CultureInfo.InvariantCulture))
{
dataGridView1.FirstDisplayedScrollingRowIndex = i;
dataGridView1.Rows[i].Selected = true; //It is also possible to color the row backgroud
// dataGridView1.CurrentRow.DefaultCellStyle.BackColo r = System.Drawing.Color.Red;

// dataGridView1.FirstDisplayedCell = dataGridView1[4, i];
return;
}
}
}

اما مشكل اينه كه اگه گريد 20 ركورد داشته باشه ... و در ستون 5 كه CellIndex رو من 4 گذاشتم تو كد ها ... عدد 2 كه تو تكست باكس نوشته ميشه اين كد بايد بياد كل 20 ركورد رو سرچ كنه و سپس هر كدوم از ركورد هايي كه در ستون 5 كه عدد 2 توش باشه رو پيدا كنه و سپس هر كدومي كه پيدا شه هايلايت شه! اما با اين كد فقط اولين كد سطري كه ستون 5 اون مقدارش برابر 2 باشه هايلايت ميشه يعني ديگه نمياد سطر هاي ديگه رو سرچ كنه و در سطر هاي ديگه تو ستون 5 عدد 2 رو پيدا كرد اونا رو هم هايلايت كنه

RIG000
سه شنبه 10 بهمن 1391, 00:45 صبح
دوست من اينم عكسش هست كه كد استاد رو ببنيد متوجه ميشه كه من عدد 2 كه كد استاد هست رو در نظر دارم و دو تا 2 ديگه در ركورد هاي ديگخه هم دارم اما فقط يك سطر كه اولين 2 رو پيدا كرده نشون داده شده .
دوستان اگه كسي بلد هست كمك كنن. ممنونم
http://8pic.ir/images/at0dhpthpudgw8hsfdot.rar

khokhan
سه شنبه 10 بهمن 1391, 15:20 عصر
دوست من اينم عكسش هست كه كد استاد رو ببنيد متوجه ميشه كه من عدد 2 كه كد استاد هست رو در نظر دارم و دو تا 2 ديگه در ركورد هاي ديگخه هم دارم اما فقط يك سطر كه اولين 2 رو پيدا كرده نشون داده شده .
دوستان اگه كسي بلد هست كمك كنن. ممنونم
http://8pic.ir/images/at0dhpthpudgw8hsfdot.rar

سلام علیکم

جونم واسطون بگه که امروز آقا تقی رو دیدم کلی با هم صحبت کردیم :لبخند:

دراین بین راجع به این مسئله هم بحث کردیم

حاصل بحث این بود که :

RIG000
چهارشنبه 11 بهمن 1391, 19:42 عصر
ممنون اما همون شب مجبور بودم که حلش کنم که حل کردم.فقط یکم بیشتر دقت کردم.... . اما این دلیل نمیشه زحمت شما نادیده گرفته شه. ممنونم از شما..