PDA

View Full Version : به دست آوردن Row index سطری که رنگ پس زمینه آن قرمز رنگ است



golestan1
چهارشنبه 12 خرداد 1395, 18:40 عصر
همان طور که در عنوان مشخصه یک سطر با پس زمینه قرمز دارم می خوام rowindex آن را در لیبل قرار دهم

سوال دوم چطور ممکنه به جای کلیک روی یک سطر با بردن ماوس روی سطر آن سطر را به حالت انتخاب درایم

ronix3
چهارشنبه 12 خرداد 1395, 20:48 عصر
در مورد سوال اول باید همه ی خط ها رو چک کنید و خطی که رنگ مورد نظر رو داره ایندکسش رو به لیبل بدید

for(int r=0;r< dataGridView1.RowCount;r++)
{
for(int c=0;c<dataGridView1.ColumnCount;c++)
{
if(dataGridView1.Rows[r].Cells[c].Style.BackColor==Color.Red)
{
Label1.Text = r;
break;
}
}
}

برای سوال دومتون هم از رویداد زیر استفاده کنید البته باید خاصیت multi select روfalse کنید و گرنه همه ی خط هایی ک موس بره رو شون با هم انتخاب می شن
private void dataGridView1_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.RowIndex != null & e.RowIndex != -1)
{
dataGridView1.Rows[e.RowIndex].Selected = true;

}
}

mrprestige
چهارشنبه 12 خرداد 1395, 21:22 عصر
همان طور که در عنوان مشخصه یک سطر با پس زمینه قرمز دارم می خوام rowindex آن را در لیبل قرار دهم

سوال دوم چطور ممکنه به جای کلیک روی یک سطر با بردن ماوس روی سطر آن سطر را به حالت انتخاب درایم

سلام دوست من وقتت بخیر با اینکه در مورد سوال اول تون شک دارم منظورتون رو درست گرفته باشم ولی در پاسخ سوال اولتون این کد رو براتون نوشتم که بسته به اون خواسته تون( من دقیقا متوجه نشدم یه ) تغییرش بدید

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
dataGridView1[e.ColumnIndex, e.RowIndex].Style.SelectionBackColor = Color.Red;
Label1.Text = e.RowIndex.ToString();
}

و در جواب سوال دومتون هم این کد رو نوشتم

private void dataGridView1_CellMouseMove(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
dataGridView1.Rows[e.RowIndex].Selected = true;
dataGridView1.Focus();
}
catch{}
}



سوال بود من جواب میدم ،
از کدنویسی لذت ببرید .
پیروز و موفق باشید.