private void machineStack_DragDrop(object sender, DragEventArgs e) { Point clientPoint = machineStack.PointToClient(new Point(e.X, e.Y)); rowIndexOfItemUnderMouseToDrop = machineStack.HitTest(clientPoint.X, clientPoint.Y).RowIndex; if (e.Effect == DragDropEffects.Move) { DataGridViewRow rowToMove = e.Data.GetData( typeof(DataGridViewRow)) as DataGridViewRow; if (rowIndexOfItemUnderMouseToDrop < 0) { return; } machineStack.Rows.RemoveAt(rowIndexFromMouseDown); machineStack.Rows.Insert(rowIndexOfItemUnderMouseToDrop, rowToMove); Feeder oldIndex = reelStack[rowIndexFromMouseDown]; //make a copy of the feeder to be moved reelStack.RemoveAt(rowIndexFromMouseDown); //remove the item reelStack.Insert(rowIndexOfItemUnderMouseToDrop, oldIndex); //insert the old list on the new position //lastly we need to change the feeder ID numbers to reflect the new order for (int i = 0; i < machineStack.Rows.Count; i++) { machineStack.Rows[i].Cells[0].Value = i + 1; } } }
/* * this is called every time the user clicks on a row in the stack list. Update the groupbox accordingly here */ private void machineStack_SelectionChanged(object sender, EventArgs e) { if (machineStack.SelectedCells.Count > 0) { int selectedRowIndex = machineStack.SelectedCells[0].RowIndex; //get the currently selected ID Feeder selectedFeeder = reelStack[selectedRowIndex]; //create a feeder copy of the selected one so we can load the data from that feederHeight.Text = selectedFeeder.height.ToString(); feederSpeed.Text = selectedFeeder.speed.ToString(); feederHead.Text = selectedFeeder.head.ToString(); feederOffsetX.Text = selectedFeeder.xOffset.ToString(); feederOffsetY.Text = selectedFeeder.yOffset.ToString(); feederCorrectionX.Text = selectedFeeder.xCorrection.ToString(); feederCorrectionY.Text = selectedFeeder.yCorrection.ToString(); feederTapeAngle.Text = selectedFeeder.tapeAngle.ToString(); feederFeedSpacing.Text = selectedFeeder.feedSpacing.ToString(); if (selectedFeeder.placeComponent) { feederPlaceComponent.Checked = true; } else { feederPlaceComponent.Checked = false; } if (selectedFeeder.checkVacuum) { feederCheckVacuum.Checked = true; } else { feederCheckVacuum.Checked = false; } if (selectedFeeder.useVision) { feederUseVision.Checked = true; } else { feederUseVision.Checked = false; } feederAliases.Text = selectedFeeder.alias.Replace(":", "\r\n"); feederSupplier.Text = selectedFeeder.supplier; feederOrderNumber.Text = selectedFeeder.orderNumber; feederComponentName.Text = selectedFeeder.component; } }