private void MainTreeView_KeyDown(object sender, KeyEventArgs e)
{
if (!CancelButton.Visible)
{
if (MainTreeView.Nodes.Count == 0)
return;
if (e.KeyCode == Keys.Delete)
{
// KFreon: Get selected items in a better format
List<int> inds = new List<int>();
for (int i = 0; i < MainTreeView.Nodes.Count; i++)
if (MainTreeView.Nodes[i].Checked)
inds.Add(i);
// KFreon: Get list in descending order (to avoid having to recalculate indicies)
inds.Sort();
inds.Reverse();
// KFreon: Delete items from both lists
inds.ForEach(index =>
{
DeleteEntry(index);
});
}
else if (e.KeyCode == Keys.Up)
{
int index = MainTreeView.Nodes.IndexOf(MainTreeView.SelectedNode);
if (index > 0)
MainTreeView.SelectedNode = MainTreeView.Nodes[index - 1];
}
else if (e.KeyCode == Keys.Down)
{
int index = MainTreeView.Nodes.IndexOf(MainTreeView.SelectedNode);
if (index < MainTreeView.Nodes.Count - 1)
MainTreeView.SelectedNode = MainTreeView.Nodes[index + 1];
}
else if (e.KeyCode == Keys.Space)
{
MainTreeView.SelectedNode.Checked = !MainTreeView.SelectedNode.Checked;
}
}
e.Handled = true;
}