public void RemoveMapping(int index)
 {
     removeRow(index + 1);
     keyMappings.RemoveAt(index);
     KeyMappingRemoved?.Invoke(this, index);
     KeyMappingsChanged?.Invoke(this, EventArgs.Empty);
 }
        private void BindingTitle_TextChanged(object sender, EventArgs e)
        {
            int rowNum = tableLayoutPanel1.GetRow((Control)sender);

            keyMappings[rowNum - 1].Title = (sender as Control).Text.Trim(':');
            KeyMappingsChanged?.Invoke(this, EventArgs.Empty);
        }
        private void RightToonKeyPicker_KeyChosen(KeyPicker keyChooser, Keys keyChosen)
        {
            int rowNum = tableLayoutPanel1.GetRow(keyChooser);

            keyMappings[rowNum - 1].RightToonKey = keyChosen;
            KeyMappingsChanged?.Invoke(this, EventArgs.Empty);
        }
        public void AddMapping(KeyMapping keyMapping)
        {
            int rowNum = addRow(keyMapping);

            keyMappings.Add(keyMapping);
            KeyMappingAdded?.Invoke(this, keyMapping);
            KeyMappingsChanged?.Invoke(this, EventArgs.Empty);
            tableLayoutPanel1.ScrollControlIntoView(tableLayoutPanel1.Controls[tableLayoutPanel1.Controls.Count - 1]);
        }