Change the top of Sub Swap Rows.
So now if you selected on a cell it works. Instead of having to select the Entire row.

Private Sub swapRows(ByVal range As mode)
If Not DataGridView1.Rows(DataGridView1.CurrentCellAddress.Y).Selected Then DataGridView1.Rows(DataGridView1.CurrentCellAddress.Y).Selected = True
Dim iSelectedRow As Integer = DataGridView1.CurrentCellAddress.Y