Worms4Editor/W4Gui/Components/StringList.cs

111 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace W4Gui.Components
{
public partial class StringList : UserControl
{
private int prevSelected = -1;
public StringList()
{
InitializeComponent();
}
public string[] Items
{
get
{
saveCurrent();
int itmCnt = lst.Items.Count;
string[] items = new string[itmCnt];
for (int i = 0; i < itmCnt; i++)
{
if (lst.Items[i] is null) items[i] = "(null)";
else items[i] = lst.Items[i].ToString();
}
return items;
}
}
public void Clear()
{
lst.Items.Clear();
}
public void AddItem(string item)
{
if(item.Trim() != "")
lst.Items.Add(item);
}
public void LoadData(string[] items)
{
lst.Items.Clear();
lst.Items.AddRange(items);
}
private void addBtn_Click(object sender, EventArgs e)
{
string val = newEntry.Text.Trim();
AddItem(val);
}
private void delBtn_Click(object sender, EventArgs e)
{
int sel = lst.SelectedIndex;
if (sel >= 0)
lst.Items.RemoveAt(sel);
}
private void saveCurrent()
{
int sel = lst.SelectedIndex;
if (sel >= 0)
lst.Items[sel] = newEntry.Text;
}
private void newEntry_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyData == Keys.Enter)
{
e.Handled = true;
saveCurrent();
}
}
private void lst_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyData == Keys.Delete)
{
e.Handled = true;
delBtn_Click(sender, e);
}
}
private void lst_SelectedIndexChanged(object sender, EventArgs e)
{
if (prevSelected >= 0)
lst.Items[prevSelected] = newEntry.Text;
if (lst.SelectedIndex >= 0)
newEntry.Text = lst.Items[lst.SelectedIndex].ToString();
prevSelected = lst.SelectedIndex;
}
private void ListAddUpdateDel_Load(object sender, EventArgs e)
{
}
}
}