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) { } } }