update 20250111
This commit is contained in:
468
Client/Klassen/inputBox.cs
Normal file
468
Client/Klassen/inputBox.cs
Normal file
@@ -0,0 +1,468 @@
|
||||
/*
|
||||
* Author: Tony Brix, http://tonybrix.info
|
||||
* License: MIT
|
||||
*/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public enum InputBoxButtons
|
||||
{
|
||||
OK,
|
||||
OKCancel,
|
||||
YesNo,
|
||||
YesNoCancel,
|
||||
Save,
|
||||
SaveCancel
|
||||
}
|
||||
|
||||
public enum InputBoxResult
|
||||
{
|
||||
Cancel,
|
||||
OK,
|
||||
Yes,
|
||||
No,
|
||||
Save
|
||||
}
|
||||
|
||||
public struct InputBoxItem
|
||||
{
|
||||
public string Label;
|
||||
public string Text;
|
||||
public bool IsPassword;
|
||||
|
||||
public InputBoxItem(string label)
|
||||
{
|
||||
Label = label;
|
||||
Text = "";
|
||||
IsPassword = false;
|
||||
}
|
||||
public InputBoxItem(string label, string text)
|
||||
{
|
||||
Label = label;
|
||||
Text = text;
|
||||
IsPassword = false;
|
||||
}
|
||||
public InputBoxItem(string label, bool isPassword)
|
||||
{
|
||||
Label = label;
|
||||
Text = "";
|
||||
IsPassword = isPassword;
|
||||
}
|
||||
public InputBoxItem(string label, string text, bool isPassword)
|
||||
{
|
||||
Label = label;
|
||||
Text = text;
|
||||
IsPassword = isPassword;
|
||||
}
|
||||
}
|
||||
|
||||
//public struct InputBoxOptions
|
||||
//{
|
||||
// public bool ShowCloseButton = true;
|
||||
//}
|
||||
|
||||
public class InputBox
|
||||
{
|
||||
private Dictionary<string, string> items;
|
||||
private InputBoxResult result;
|
||||
|
||||
private InputBox(dialogForm dialog)
|
||||
{
|
||||
result = dialog.InputResult;
|
||||
items = new Dictionary<string, string>();
|
||||
for (int i = 0; i < dialog.label.Length; i++)
|
||||
{
|
||||
items.Add(dialog.label[i].Text, dialog.textBox[i].Text);
|
||||
}
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, string label)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label) }, InputBoxButtons.OK);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, string label, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label) }, buttons);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, string label, string text)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label, text) }, InputBoxButtons.OK);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, string label, string text, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label, text) }, buttons);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, string[] labels)
|
||||
{
|
||||
InputBoxItem[] items = new InputBoxItem[labels.Length];
|
||||
for (int i = 0; i < labels.Length; i++)
|
||||
{
|
||||
items[i] = new InputBoxItem(labels[i]);
|
||||
}
|
||||
|
||||
dialogForm dialog = new dialogForm(title, items, InputBoxButtons.OK);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, string[] labels, InputBoxButtons buttons)
|
||||
{
|
||||
InputBoxItem[] items = new InputBoxItem[labels.Length];
|
||||
for (int i = 0; i < labels.Length; i++)
|
||||
{
|
||||
items[i] = new InputBoxItem(labels[i]);
|
||||
}
|
||||
|
||||
dialogForm dialog = new dialogForm(title, items, buttons);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, InputBoxItem item)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { item }, InputBoxButtons.OK);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, InputBoxItem item, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { item }, buttons);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, InputBoxItem[] items)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, items, InputBoxButtons.OK);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(string title, InputBoxItem[] items, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, items, buttons);
|
||||
dialog.ShowDialog();
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, string label)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label) }, InputBoxButtons.OK);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, string label, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label) }, buttons);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, string label, string text)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label, text) }, InputBoxButtons.OK);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, string label, string text, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { new InputBoxItem(label, text) }, buttons);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, string[] labels)
|
||||
{
|
||||
InputBoxItem[] items = new InputBoxItem[labels.Length];
|
||||
for (int i = 0; i < labels.Length; i++)
|
||||
{
|
||||
items[i] = new InputBoxItem(labels[i]);
|
||||
}
|
||||
|
||||
dialogForm dialog = new dialogForm(title, items, InputBoxButtons.OK);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, string[] labels, InputBoxButtons buttons)
|
||||
{
|
||||
InputBoxItem[] items = new InputBoxItem[labels.Length];
|
||||
for (int i = 0; i < labels.Length; i++)
|
||||
{
|
||||
items[i] = new InputBoxItem(labels[i]);
|
||||
}
|
||||
|
||||
dialogForm dialog = new dialogForm(title, items, buttons);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, InputBoxItem item)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { item }, InputBoxButtons.OK);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, InputBoxItem item, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, new InputBoxItem[] { item }, buttons);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, InputBoxItem[] items)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, items, InputBoxButtons.OK);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public static InputBox Show(IWin32Window window, string title, InputBoxItem[] items, InputBoxButtons buttons)
|
||||
{
|
||||
dialogForm dialog = new dialogForm(title, items, buttons);
|
||||
dialog.ShowDialog(window);
|
||||
return new InputBox(dialog);
|
||||
}
|
||||
|
||||
public Dictionary<string, string> Items
|
||||
{
|
||||
get { return items; }
|
||||
}
|
||||
|
||||
public InputBoxResult Result
|
||||
{
|
||||
get { return result; }
|
||||
}
|
||||
|
||||
private class dialogForm : Form
|
||||
{
|
||||
private InputBoxResult inputResult = InputBoxResult.Cancel;
|
||||
public TextBox[] textBox;
|
||||
public Label[] label;
|
||||
private Button button1;
|
||||
private Button button2;
|
||||
private Button button3;
|
||||
|
||||
public InputBoxResult InputResult
|
||||
{
|
||||
get { return inputResult; }
|
||||
}
|
||||
|
||||
public dialogForm(string title, InputBoxItem[] items, InputBoxButtons buttons)
|
||||
{
|
||||
int minWidth = 312;
|
||||
label = new Label[items.Length];
|
||||
for (int i = 0; i < label.Length; i++)
|
||||
{
|
||||
label[i] = new Label();
|
||||
}
|
||||
textBox = new TextBox[items.Length];
|
||||
for (int i = 0; i < textBox.Length; i++)
|
||||
{
|
||||
textBox[i] = new TextBox();
|
||||
}
|
||||
button2 = new Button();
|
||||
button3 = new Button();
|
||||
button1 = new Button();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label
|
||||
//
|
||||
for (int i = 0; i < items.Length; i++)
|
||||
{
|
||||
label[i].AutoSize = true;
|
||||
label[i].Location = new Point(12, 9 + (i * 39));
|
||||
label[i].Name = "label[" + i + "]";
|
||||
label[i].Text = items[i].Label;
|
||||
if (label[i].Width > minWidth)
|
||||
{
|
||||
minWidth = label[i].Width;
|
||||
}
|
||||
}
|
||||
//
|
||||
// textBox
|
||||
//
|
||||
for (int i = 0; i < items.Length; i++)
|
||||
{
|
||||
textBox[i].Anchor = (AnchorStyles)(AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right);
|
||||
textBox[i].Location = new Point(12, 25 + (i * 39));
|
||||
textBox[i].Name = "textBox[" + i + "]";
|
||||
textBox[i].Size = new Size(288, 20);
|
||||
textBox[i].TabIndex = i;
|
||||
textBox[i].Text = items[i].Text;
|
||||
if (items[i].IsPassword)
|
||||
{
|
||||
textBox[i].UseSystemPasswordChar = true;
|
||||
}
|
||||
}
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Anchor = (AnchorStyles)(AnchorStyles.Bottom | AnchorStyles.Right);
|
||||
button1.Location = new Point(208, 15 + (39 * label.Length));
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(92, 23);
|
||||
button1.TabIndex = items.Length + 2;
|
||||
button1.Text = "button1";
|
||||
button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
button2.Anchor = (AnchorStyles)(AnchorStyles.Bottom | AnchorStyles.Right);
|
||||
button2.Location = new Point(110, 15 + (39 * label.Length));
|
||||
button2.Name = "button2";
|
||||
button2.Size = new Size(92, 23);
|
||||
button2.TabIndex = items.Length + 1;
|
||||
button2.Text = "button2";
|
||||
button2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button3
|
||||
//
|
||||
button3.Anchor = (AnchorStyles)(AnchorStyles.Bottom | AnchorStyles.Right);
|
||||
button3.Location = new Point(12, 15 + (39 * label.Length));
|
||||
button3.Name = "button3";
|
||||
button3.Size = new Size(92, 23);
|
||||
button3.TabIndex = items.Length;
|
||||
button3.Text = "button3";
|
||||
button3.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// Evaluate MessageBoxButtons
|
||||
//
|
||||
switch (buttons)
|
||||
{
|
||||
case InputBoxButtons.OK:
|
||||
button1.Text = "OK";
|
||||
button1.Click += OK_Click;
|
||||
button2.Visible = false;
|
||||
button3.Visible = false;
|
||||
AcceptButton = button1;
|
||||
break;
|
||||
case InputBoxButtons.OKCancel:
|
||||
button1.Text = "Cancel";
|
||||
button1.Click += Cancel_Click;
|
||||
button2.Text = "OK";
|
||||
button2.Click += OK_Click;
|
||||
button3.Visible = false;
|
||||
AcceptButton = button2;
|
||||
break;
|
||||
case InputBoxButtons.YesNo:
|
||||
button1.Text = "No";
|
||||
button1.Click += No_Click;
|
||||
button2.Text = "Yes";
|
||||
button2.Click += Yes_Click;
|
||||
button3.Visible = false;
|
||||
AcceptButton = button2;
|
||||
break;
|
||||
case InputBoxButtons.YesNoCancel:
|
||||
button1.Text = "Cancel";
|
||||
button1.Click += Cancel_Click;
|
||||
button2.Text = "No";
|
||||
button2.Click += No_Click;
|
||||
button3.Text = "Yes";
|
||||
button3.Click += Yes_Click;
|
||||
AcceptButton = button3;
|
||||
break;
|
||||
case InputBoxButtons.Save:
|
||||
button1.Text = "Save";
|
||||
button1.Click += Save_Click;
|
||||
button2.Visible = false;
|
||||
button3.Visible = false;
|
||||
AcceptButton = button1;
|
||||
break;
|
||||
case InputBoxButtons.SaveCancel:
|
||||
button1.Text = "Cancel";
|
||||
button1.Click += Cancel_Click;
|
||||
button2.Text = "Save";
|
||||
button2.Click += Save_Click;
|
||||
button3.Visible = false;
|
||||
AcceptButton = button2;
|
||||
break;
|
||||
default:
|
||||
throw new Exception("Invalid InputBoxButton Value");
|
||||
}
|
||||
//
|
||||
// dialogForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(6F, 13F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(312, 47 + (39 * items.Length));
|
||||
for (int i = 0; i < label.Length; i++)
|
||||
{
|
||||
Controls.Add(label[i]);
|
||||
}
|
||||
for (int i = 0; i < textBox.Length; i++)
|
||||
{
|
||||
Controls.Add(textBox[i]);
|
||||
}
|
||||
Controls.Add(button1);
|
||||
Controls.Add(button2);
|
||||
Controls.Add(button3);
|
||||
MaximizeBox = false;
|
||||
MinimizeBox = false;
|
||||
MaximumSize = new Size(99999, 85 + (39 * items.Length));
|
||||
Name = "dialogForm";
|
||||
ShowIcon = false;
|
||||
ShowInTaskbar = false;
|
||||
Text = title;
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
foreach (Label l in label)
|
||||
{
|
||||
if (l.Width > minWidth)
|
||||
{
|
||||
minWidth = l.Width;
|
||||
}
|
||||
}
|
||||
ClientSize = new Size(minWidth + 24, 47 + (39 * items.Length));
|
||||
MinimumSize = new Size(minWidth + 40, 85 + (39 * items.Length));
|
||||
}
|
||||
|
||||
private void OK_Click(object sender, EventArgs e)
|
||||
{
|
||||
inputResult = InputBoxResult.OK;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void Cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
inputResult = InputBoxResult.Cancel;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void Yes_Click(object sender, EventArgs e)
|
||||
{
|
||||
inputResult = InputBoxResult.Yes;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void No_Click(object sender, EventArgs e)
|
||||
{
|
||||
inputResult = InputBoxResult.No;
|
||||
Close();
|
||||
}
|
||||
|
||||
private void Save_Click(object sender, EventArgs e)
|
||||
{
|
||||
inputResult = InputBoxResult.Save;
|
||||
Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user