private void AttachToSelectedProcess() { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); var selectedRows = processesGridView.SelectedRows; uint processId = 0; var program = ""; foreach (var row in selectedRows) { var datagridRow = (DataGridViewRow)row; dynamic process = datagridRow.DataBoundItem; processId = process.ProcessId; program = process.CommandLine; } if (processId <= 0) { return; } try { AttachService.AttachToProcess(DTE, processId, program); Close(); } catch (Exception ex) { MessageBox.Show("Failed to attach to process: " + ex.ToString()); } }