feat: ServerForm set the color of the control to red If the value is wrong

This commit is contained in:
ChsBuffer
2020-10-29 14:56:26 +08:00
parent 0c5464f833
commit 159fbdd58d
3 changed files with 42 additions and 34 deletions

View File

@@ -168,28 +168,37 @@ namespace Netch.Forms
private void ControlButton_Click(object sender, EventArgs e)
{
if (_checkActions.All(pair => pair.Value.Invoke(pair.Key.Text)))
Utils.Utils.ComponentIterator(this, component => Utils.Utils.ChangeControlForeColor(component, Color.Black));
var flag = true;
foreach (var pair in _checkActions.Where(pair => !pair.Value.Invoke(pair.Key.Text)))
{
foreach (var pair in _saveActions)
{
switch (pair.Key)
{
case CheckBox c:
pair.Value.Invoke(c.Checked);
break;
default:
pair.Value.Invoke(pair.Key.Text);
break;
}
}
if (Global.Settings.Server.IndexOf(Server) == -1)
Global.Settings.Server.Add(Server);
MessageBoxX.Show(i18N.Translate("Saved"));
Utils.Utils.ChangeControlForeColor(pair.Key, Color.Red);
flag = false;
}
else
if (!flag)
{
return;
}
foreach (var pair in _saveActions)
{
switch (pair.Key)
{
case CheckBox c:
pair.Value.Invoke(c.Checked);
break;
default:
pair.Value.Invoke(pair.Key.Text);
break;
}
}
if (Global.Settings.Server.IndexOf(Server) == -1)
Global.Settings.Server.Add(Server);
MessageBoxX.Show(i18N.Translate("Saved"));
Close();
}

View File

@@ -282,26 +282,14 @@ namespace Netch.Forms
private void ControlButton_Click(object sender, EventArgs e)
{
void ChangeControlForeColor(Component component, Color color)
{
switch (component)
{
case TextBox _:
case ComboBox _:
if (((Control) component).ForeColor != color)
((Control) component).ForeColor = color;
break;
}
}
Utils.Utils.ComponentIterator(this, component => ChangeControlForeColor(component, Color.Black));
Utils.Utils.ComponentIterator(this, component => Utils.Utils.ChangeControlForeColor(component, Color.Black));
#region Check
var flag = true;
foreach (var pair in _checkActions.Where(pair => !pair.Value.Invoke(pair.Key.Text)))
{
ChangeControlForeColor(pair.Key, Color.Red);
Utils.Utils.ChangeControlForeColor(pair.Key, Color.Red);
flag = false;
}
@@ -335,7 +323,7 @@ namespace Netch.Forms
if (!stunFlag)
{
ChangeControlForeColor(STUN_ServerComboBox, Color.Red);
Utils.Utils.ChangeControlForeColor(STUN_ServerComboBox, Color.Red);
return;
}

View File

@@ -285,5 +285,16 @@ namespace Netch.Utils
folder.DeleteTask("Netch Startup", 0);
}
}
public static void ChangeControlForeColor(Component component, Color color)
{
switch (component)
{
case TextBox _:
case ComboBox _:
if (((Control) component).ForeColor != color) ((Control) component).ForeColor = color;
break;
}
}
}
}