34 lines
884 B
C#
34 lines
884 B
C#
using System;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
|
|
namespace CC_Functions.Misc
|
|
{
|
|
internal partial class SelectBox<T> : Form
|
|
{
|
|
public T result;
|
|
|
|
public SelectBox(T[] Options, string title = "")
|
|
{
|
|
InitializeComponent();
|
|
Text = title;
|
|
listBox1.Items.AddRange(Options.Select(s => (object) s).ToArray());
|
|
}
|
|
|
|
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
result = (T) listBox1.SelectedItem;
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
}
|
|
|
|
public static class SelectBox
|
|
{
|
|
public static T Show<T>(T[] Options, string title = "")
|
|
{
|
|
SelectBox<T> sb = new SelectBox<T>(Options, title);
|
|
return sb.ShowDialog() == DialogResult.OK ? sb.result : default;
|
|
}
|
|
}
|
|
} |