private void MoveRowBy(int offset) { DataGridViewRow row = dgvIRCodes.CurrentRow; if (row.Index == 0 && offset == -1 || ((row.Index == dgvIRCodes.NewRowIndex - 1) && offset == 1 || row.Index == dgvIRCodes.NewRowIndex)) { return; // Ничего делать не надо => выходим } // Получаем текущий индекс строки int currentIndex = row.Index; // Удаляем ее из коллекции IRCode irc = (IRCode)row.DataBoundItem; IRCodes.Remove(irc); // А теперь добавляем со смещением IRCodes.Insert(currentIndex + offset, irc); }
private void UpdateControls() { if (dgvIRCodes.CurrentRow != null) { if (dgvIRCodes.CurrentRow.DataBoundItem != null) { IRCode sel = (IRCode)dgvIRCodes.CurrentRow.DataBoundItem; btnStartLearning.Enabled = (sel.CodeType == IRCodeType.RAW); btnUp.Enabled = true; btnDown.Enabled = true; btnTest.Enabled = true; } } else { btnStartLearning.Enabled = false; btnUp.Enabled = false; btnDown.Enabled = false; btnTest.Enabled = false; } }