Try the CellContentClick event.
This event occurs when the cell content is clicked. It also occurs when the user presses and releases the SPACEBAR while a button cell or check box cell has focus, and will occur twice for these cell types if the cell content is clicked while pressing the SPACEBAR.
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellcontentclick.aspx
Edit: The CellContentClick event provides a DataGridViewCellEventArgs parameters, which contains the exact column and row clicked. From that link I provided, I can put together a short example. I'm assuming the values you want to pass are strings and are in columns 2, 3 and 4 (indexes 1, 2 and 3, respectively). Note, this isn't tested!
if (DataGridView1.Columns[e.ColumnIndex] is DataGridViewButtonColumn && cellEvent.RowIndex != -1)
{
DataRow currRow = DataGridView1.Rows[e.RowIndex];
SendValuesSomewhereElse(Convert.ToString(currRow[1]), Convert.ToString(currRow[2]), Convert.ToString(currRow[3]));
}