111 lines
2.6 KiB
C#
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)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|