Использование С# DataGridView, как я могу:
- Выделите строку
- Сделать свечение строки временно (желтеть на пару секунд)
Использование С# DataGridView, как я могу:
Чтобы имитировать пользователя, выбирающего строку, используйте
myDataGrid.Rows[n].IsSelected = true;
как предположил Габриэль.
Чтобы временно выделить цвет в элементе управления DataGridView, установите для свойства DefaultCellStyle.BackColor
цвет по вашему выбору для интересующей вас строки. Затем включите элемент System.Windows.Forms.Timer
в течение выбранного вами периода времени, Когда срабатывает таймер Tick
, отключите таймер и верните строку DefaultCellStyle.BackColor
в исходный цвет.
Ниже приведен краткий пример для приложения WinForm, которое имеет DataGridView с именем GlowDataGrid, таймер с именем GlowTimer и кнопку с именем GlowButton. При нажатии на GlowButton третья строка DataGridView временно светится желтым в течение двух секунд.
private void Form1_Load(object sender, EventArgs e)
{
// initialize datagrid with some values
GlowDataGrid.Rows.Add(5);
string[] names = new string[] { "Mary","James","Michael","Linda","Susan"};
for(int i = 0; i < 5; i++)
{
GlowDataGrid[0, i].Value = names[i];
GlowDataGrid[1, i].Value = i;
}
}
private void GlowButton_Click(object sender, EventArgs e)
{
// set third row back color to yellow
GlowDataGrid.Rows[2].DefaultCellStyle.BackColor = Color.Yellow;
// set glow interval to 2000 milliseconds
GlowTimer.Interval = 2000;
GlowTimer.Enabled = true;
}
private void GlowTimer_Tick(object sender, EventArgs e)
{
// disable timer and set the color back to white
GlowTimer.Enabled = false;
GlowDataGrid.Rows[2].DefaultCellStyle.BackColor = Color.White;
}
Мой код для вас
private void Form1_Load(object sender, EventArgs e)
{
Timer t = new Timer();
t.Interval = 500;
t.Enabled = false;
dataGridView1.CellMouseEnter += (a, b) =>
{
if (b.RowIndex != -1)
{
dataGridView1.CurrentCell = dataGridView1.Rows[b.RowIndex].Cells[0];
dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Yellow;
dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionForeColor = Color.Black;
t.Tick += (c, d) =>
{
dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionBackColor = Color.Blue;
dataGridView1.Rows[b.RowIndex].DefaultCellStyle.SelectionForeColor = Color.White;
t.Enabled = false;
};
t.Enabled = true;
}
};
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.Columns.Add("Col1", "Col1");
dataGridView1.Columns.Add("Col2", "Col2");
dataGridView1.Rows.Add("Row1", "Col1");
dataGridView1.Rows.Add("Row1", "Col2");
dataGridView1.Rows.Add("Row2", "Col1");
dataGridView1.Rows.Add("Row2", "Col2");
dataGridView1.Rows.Add("Row3", "Col1");
dataGridView1.Rows.Add("Row3", "Col2");
dataGridView1.Rows.Add("Row4", "Col1");
dataGridView1.Rows.Add("Row4", "Col2");
}
Вы можете выделить строку 'n' someDataGridView.Rows [n].IsSelected = true;
Вы можете использовать свойство GridView
AutoFormat
.
Использовать как
gridLibrary.Rows(i).DefaultCellStyle.BackColor = Color.Yellow
чтобы установить цвет, тогда вам нужно будет reset цвета после сетка сортируется.
Затем с помощью таймера измените цвет подсветки после задержки.
gridLibrary.Rows(i).DefaultCellStyle.BackColor = Color.white