我有一个winforms datagridview,当我点击TAB时,焦点矩形(虚线矩形)设置为一个单元格并开始从一个单元格移动到另一个单元格,因为我一直按下按钮,而我希望将矩形设置为整个行不仅仅是单元格,一旦我开始点击TAB,它应该从行移动到行。
我尝试将selctionmode
设置为fullrowselect
但仍然是细胞的焦点设置。
您能否建议我在此处实现目标的任何解决方法。谢谢!
答案 0 :(得分:1)
您可以使用SelectionMode
作为FullRowSelect
datagridview
s KeyDown event
,例如
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab)
{
int activeRow = dataGridView1.CurrentCell.RowIndex;
if ((activeRow + 1) < dataGridView1.RowCount)
{
dataGridView1.CurrentCell = dataGridView1.Rows[activeRow+1].Cells[0];
}
}
}
同样对于选择矩形,您可以在CellPainting
事件中添加以下代码
void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.ColumnIndex == this.dataGridView1.CurrentCell.ColumnIndex
&& e.RowIndex == this.dataGridView1.CurrentCell.RowIndex)
{
e.Paint(e.CellBounds, DataGridViewPaintParts.All& ~DataGridViewPaintParts.Border);
using (Pen p = new Pen(Color.Black, 0))
{
Rectangle rect = e.CellBounds;
rect.Width -= 2;
rect.Height -= 2;
e.Graphics.DrawRectangle(p, rect);
}
e.Handled = true;
}
}
答案 1 :(得分:0)
试试这个。,
使用标签:
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
使用Mouseclick:
dataGridView1.SelectionMode = DataGridViewSelectionMode.RowHeaderSelect;