C# 自定义DataGridView选择模式
所以我到处搜索,试图找到我的问题的答案,但每个人似乎都同意它默认选择单元格的方式(在一个框中) 我正在使用十六进制编辑器,当前SelectionMode设置为默认RowHeaderSelect,MultiSelect设置为true。 我的问题是,当您单击单元格并拖动“选择”时,它会选择长方体形状的单元格(如excel)。这不是我需要它来选择单元格的方式 我目前通过处理以下事件来解决这个问题:CellMouseDown、CellMouseEnter、CellMouseUp和MouseUp。 这为我提供了我正在寻找的选择,但在拖动选择期间,默认框选择样式仍然存在 这个代码示例发生在CellMouseUp上,提供了我正在寻找的选择样式。第一张照片是运行下面的代码(CellMouseUp)后我选择的内容的样子。第二幅图是拖动时发生的情况(下面的代码在CellMouseEnter上运行,以便在拖动时进行自定义选择),但它会产生一个视觉错误,即取消选择整个列,因为它是默认的选择框样式(excel样式) 编辑:在鼠标上下移动后澄清选择工作 (dgvMainBinary.ClearSelection()然后是下面的代码) 这是一个在拖动过程中发生的视觉错误。我唯一能想到的是CellMouseEnter事件之后运行的默认框选择模式 任何帮助都将不胜感激,谢谢C# 自定义DataGridView选择模式,c#,winforms,datagridview,C#,Winforms,Datagridview,所以我到处搜索,试图找到我的问题的答案,但每个人似乎都同意它默认选择单元格的方式(在一个框中) 我正在使用十六进制编辑器,当前SelectionMode设置为默认RowHeaderSelect,MultiSelect设置为true。 我的问题是,当您单击单元格并拖动“选择”时,它会选择长方体形状的单元格(如excel)。这不是我需要它来选择单元格的方式 我目前通过处理以下事件来解决这个问题:CellMouseDown、CellMouseEnter、CellMouseUp和MouseUp。 这为我
for (int row = startY; row <= endY; row++)
{
int startColumn = 0;
int endColumn = 15;
if (row == startY)
{
startColumn = startX;
if (startY == endY)
endColumn = endX;
}
else if (row == endY)
{
endColumn = (endX < 16)?endX:15;
}
for (int column = startColumn; column <= endColumn; column++)
{
dgvMainBinary.Rows[row].Cells[column].Selected = true;
}
}
for(int row=startY;row一种方法是清除MouseUp
事件处理程序中的选定单元格,并在清除由DataGridView
默认逻辑完成的选择后执行选择逻辑
void dataGridView1_MouseUp(object sender, MouseEventArgs e)
{
dataGridView1.ClearSelection();
// do your selection logic here
}