private void Grid_MouseDown(object sender, MouseEventArgs e)
{
m_lastMousePosition = (e.Location);
if (e.Button == MouseButtons.Right)
{
m_dragging = true;
}
if (e.Button == MouseButtons.Left)
{
m_selecting = true;
m_lastSelectMousePosition = e.Location;
m_selectDeltaX = 0;
m_selectionOffsetX = 0;
m_selectDeltaY = 0;
m_selectionOffsetY = 0;
m_selectedX = GetCellX(e.Location);
m_selectedY = GetCellY(e.Location);
var cellX = (int)System.Math.Floor((((double)m_mouseOffsetX) / ((double)m_cellSize)));
var cellY = (int)System.Math.Floor((((double)m_mouseOffsetY) / ((double)m_cellSize)));
m_selectionStartX = cellX * m_cellSize + GetPartialCellSizeX();
m_selectionStartY = cellY * m_cellSize + GetPartialCellSizeY();
selection = new Rectangle(m_selectionStartX, m_selectionStartY, m_cellSize, m_cellSize);
if (SelectionMade != null)
{
SelectionMade(new Rectangle(m_selectedX, m_selectedY, 1, 1));
}
Invalidate();
}
}