2015-10-05 08:11:59 +00:00
|
|
|
|
///
|
|
|
|
|
|
/// Copyright (c) 2015 Sensus Metering Systems
|
|
|
|
|
|
///
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
using log4net;
|
|
|
|
|
|
using TBF.Resources;
|
|
|
|
|
|
|
2021-03-05 13:47:21 +00:00
|
|
|
|
namespace TBF.Rig.DataEntry.Standard24
|
2015-10-05 08:11:59 +00:00
|
|
|
|
{
|
|
|
|
|
|
public partial class AdvancedFixedStartTestForm : Form, GenericDevices.IHasCompleted
|
|
|
|
|
|
{
|
|
|
|
|
|
private static readonly ILog log = LogManager.GetLogger(typeof(AdvancedFixedStartTestForm));
|
|
|
|
|
|
|
|
|
|
|
|
// Set to 'true' when the form closes
|
|
|
|
|
|
public bool Completed { get { return completed; } }
|
|
|
|
|
|
bool completed;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary> Number of text boxes for serial numbers </summary>
|
|
|
|
|
|
public readonly int WaterMetersCount;
|
|
|
|
|
|
|
|
|
|
|
|
readonly bool[] disabled;
|
|
|
|
|
|
|
|
|
|
|
|
// To be retrieved after the form closes
|
|
|
|
|
|
public float[] WMStartState;
|
|
|
|
|
|
|
|
|
|
|
|
// To be retrieved after the form closes
|
|
|
|
|
|
public readonly string[] WMStartStateStr;
|
|
|
|
|
|
|
|
|
|
|
|
// To be retrieved after the form closes
|
|
|
|
|
|
public float[] WMEndState;
|
|
|
|
|
|
|
|
|
|
|
|
bool endStates; /// false=start states, true=end states
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double refVolume;
|
|
|
|
|
|
double warningLimLo; /// limit to display exclamation mark, typically 2x errLimLo
|
|
|
|
|
|
double warningLimHi; /// limit to display exclamation mark, typically 2x errLimHi
|
2015-10-05 08:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
int TextBoxesCount;
|
|
|
|
|
|
///
|
|
|
|
|
|
Label[] labels;
|
|
|
|
|
|
TextBox[] startTextBoxes;
|
|
|
|
|
|
TextBox[] mid1TextBoxes;
|
|
|
|
|
|
TextBox[] mid2TextBoxes;
|
|
|
|
|
|
TextBox[] endTextBoxes;
|
|
|
|
|
|
IList<TextBox> enabledTextBoxes;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Parameterless constructor initializing common part for start and endstate form
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public AdvancedFixedStartTestForm()
|
|
|
|
|
|
{
|
|
|
|
|
|
InitializeComponent();
|
2017-04-28 10:22:26 +00:00
|
|
|
|
ControlBox = false;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
TextBoxesCount = 24;
|
|
|
|
|
|
|
|
|
|
|
|
labels = new Label[]
|
|
|
|
|
|
{
|
|
|
|
|
|
label1, label2, label3, label4, label5, label6, label7, label8, label9, label10,
|
|
|
|
|
|
label11, label12, label13, label14, label15, label16, label17, label18, label19, label20,
|
|
|
|
|
|
label21, label22, label23, label24,
|
|
|
|
|
|
};
|
|
|
|
|
|
startTextBoxes = new TextBox[]
|
|
|
|
|
|
{
|
|
|
|
|
|
startTextBox1, startTextBox2, startTextBox3, startTextBox4, startTextBox5, startTextBox6,
|
|
|
|
|
|
startTextBox7, startTextBox8, startTextBox9, startTextBox10, startTextBox11, startTextBox12,
|
|
|
|
|
|
startTextBox13, startTextBox14, startTextBox15, startTextBox16, startTextBox17, startTextBox18,
|
|
|
|
|
|
startTextBox19, startTextBox20, startTextBox21, startTextBox22, startTextBox23, startTextBox24,
|
|
|
|
|
|
};
|
|
|
|
|
|
mid1TextBoxes = new TextBox[]
|
|
|
|
|
|
{
|
|
|
|
|
|
mid1TextBox1, mid1TextBox2, mid1TextBox3, mid1TextBox4, mid1TextBox5, mid1TextBox6,
|
|
|
|
|
|
mid1TextBox7, mid1TextBox8, mid1TextBox9, mid1TextBox10, mid1TextBox11, mid1TextBox12,
|
|
|
|
|
|
mid1TextBox13, mid1TextBox14, mid1TextBox15, mid1TextBox16, mid1TextBox17, mid1TextBox18,
|
|
|
|
|
|
mid1TextBox19, mid1TextBox20, mid1TextBox21, mid1TextBox22, mid1TextBox23, mid1TextBox24,
|
|
|
|
|
|
};
|
|
|
|
|
|
mid2TextBoxes = new TextBox[]
|
|
|
|
|
|
{
|
|
|
|
|
|
mid2TextBox1, mid2TextBox2, mid2TextBox3, mid2TextBox4, mid2TextBox5, mid2TextBox6,
|
|
|
|
|
|
mid2TextBox7, mid2TextBox8, mid2TextBox9, mid2TextBox10, mid2TextBox11, mid2TextBox12,
|
|
|
|
|
|
mid2TextBox13, mid2TextBox14, mid2TextBox15, mid2TextBox16, mid2TextBox17, mid2TextBox18,
|
|
|
|
|
|
mid2TextBox19, mid2TextBox20, mid2TextBox21, mid2TextBox22, mid2TextBox23, mid2TextBox24,
|
|
|
|
|
|
};
|
|
|
|
|
|
endTextBoxes = new TextBox[]
|
|
|
|
|
|
{
|
|
|
|
|
|
endTextBox1, endTextBox2, endTextBox3, endTextBox4, endTextBox5, endTextBox6,
|
|
|
|
|
|
endTextBox7, endTextBox8, endTextBox9, endTextBox10, endTextBox11, endTextBox12,
|
|
|
|
|
|
endTextBox13, endTextBox14, endTextBox15, endTextBox16, endTextBox17, endTextBox18,
|
|
|
|
|
|
endTextBox19, endTextBox20, endTextBox21, endTextBox22, endTextBox23, endTextBox24,
|
|
|
|
|
|
};
|
|
|
|
|
|
enabledTextBoxes = new List<TextBox>();
|
|
|
|
|
|
|
|
|
|
|
|
completed = false;
|
|
|
|
|
|
StartForceCloseHandler();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Constructor to fill in start states
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="waterMetersCount">Number of water meters</param>
|
|
|
|
|
|
/// <param name="disabled">Information from CycleBeginningForm about availability of water meters</param>
|
|
|
|
|
|
public AdvancedFixedStartTestForm(int waterMetersCount, bool[] disabled)
|
|
|
|
|
|
: this()
|
|
|
|
|
|
{
|
|
|
|
|
|
endStates = false;
|
|
|
|
|
|
|
|
|
|
|
|
this.WaterMetersCount = waterMetersCount;
|
|
|
|
|
|
this.disabled = disabled;
|
|
|
|
|
|
|
|
|
|
|
|
ShuffleTextBoxes();
|
|
|
|
|
|
|
|
|
|
|
|
WMStartState = new float[waterMetersCount];
|
|
|
|
|
|
WMStartStateStr = new string[waterMetersCount];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Constructor to fill in end states
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="waterMetersCount">Number of water meters</param>
|
|
|
|
|
|
/// <param name="wmStartStateStr">Information entered on test start</param>
|
|
|
|
|
|
/// <param name="disabled">Information from CycleBeginningForm about availability of water meters</param>
|
|
|
|
|
|
/// <param name="refVolume">Reference volume, it is used to verify the end state, show/hide exclamation if necessary</param>
|
|
|
|
|
|
/// <param name="errLimLo">Error limit low, it is used to verify the end state, show/hide exclamation if necessary</param>
|
|
|
|
|
|
/// <param name="errLimHi">Error limit high, it is used to verify the end state, show/hide exclamation if necessary</param>
|
|
|
|
|
|
public AdvancedFixedStartTestForm(int waterMetersCount, string[] wmStartStateStr, bool[] disabled,
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double refVolume, double errLimLo, double errLimHi)
|
2015-10-05 08:11:59 +00:00
|
|
|
|
: this()
|
|
|
|
|
|
{
|
|
|
|
|
|
endStates = true;
|
|
|
|
|
|
|
|
|
|
|
|
this.WaterMetersCount = waterMetersCount;
|
|
|
|
|
|
if (wmStartStateStr == null || wmStartStateStr.Length != waterMetersCount)
|
|
|
|
|
|
throw (new Exception("Invalid 'wmStartStateStr' argument"));
|
|
|
|
|
|
this.WMStartStateStr = wmStartStateStr;
|
|
|
|
|
|
this.disabled = disabled;
|
|
|
|
|
|
this.refVolume = refVolume;
|
|
|
|
|
|
this.warningLimLo = 2 * errLimLo;
|
|
|
|
|
|
this.warningLimHi = 2 * errLimHi;
|
|
|
|
|
|
|
|
|
|
|
|
ShuffleTextBoxes();
|
|
|
|
|
|
|
|
|
|
|
|
WMEndState = new float[waterMetersCount];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Make sure the layout of labels/text boxes on the screen
|
|
|
|
|
|
/// corresponds to the layout of watermeters of the test bench.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
void ShuffleTextBoxes()
|
|
|
|
|
|
{
|
2021-05-27 15:30:04 +00:00
|
|
|
|
if (Common.Data.WMsCount < TextBoxesCount)
|
2015-10-05 08:11:59 +00:00
|
|
|
|
{
|
2021-05-27 15:30:04 +00:00
|
|
|
|
int nrLines = Common.Data.WMsCount / Common.Data.LineSize;
|
|
|
|
|
|
int gap = (TextBoxesCount - Common.Data.WMsCount) / nrLines;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
|
|
|
|
|
|
int dest = 0;
|
|
|
|
|
|
for (int l = 0; l < nrLines; l++)
|
|
|
|
|
|
{
|
2021-05-27 15:30:04 +00:00
|
|
|
|
for (int i = 0; i < Common.Data.LineSize; i++)
|
2015-10-05 08:11:59 +00:00
|
|
|
|
{
|
2021-05-27 15:30:04 +00:00
|
|
|
|
labels[dest] = labels[l * Common.Data.LineSize + l * gap + i];
|
|
|
|
|
|
startTextBoxes[dest] = startTextBoxes[l * Common.Data.LineSize + l * gap + i];
|
|
|
|
|
|
mid1TextBoxes[dest] = mid1TextBoxes[l * Common.Data.LineSize + l * gap + i];
|
|
|
|
|
|
mid2TextBoxes[dest] = mid2TextBoxes[l * Common.Data.LineSize + l * gap + i];
|
|
|
|
|
|
endTextBoxes[dest] = endTextBoxes[l * Common.Data.LineSize + l * gap + i];
|
2015-10-05 08:11:59 +00:00
|
|
|
|
dest++;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-05-27 15:30:04 +00:00
|
|
|
|
TextBoxesCount = Common.Data.WMsCount;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void CycleEndForm_Load(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
Localize();
|
|
|
|
|
|
|
|
|
|
|
|
//Height = 115 + 90 * WaterMetersCount;
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < TextBoxesCount; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (i < WaterMetersCount)
|
|
|
|
|
|
{
|
|
|
|
|
|
labels[i].Visible = startTextBoxes[i].Visible = mid1TextBoxes[i].Visible = mid2TextBoxes[i].Visible = endTextBoxes[i].Visible = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (endStates)
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int i = 0; i < TextBoxesCount; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (WMStartStateStr != null && i < WMStartStateStr.Length)
|
|
|
|
|
|
{
|
|
|
|
|
|
startTextBoxes[i].Text = WMStartStateStr[i];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (disabled != null && i < disabled.Length && disabled[i])
|
|
|
|
|
|
{
|
|
|
|
|
|
endTextBoxes[i].Enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
endTextBoxes[i].Enabled = true;
|
|
|
|
|
|
enabledTextBoxes.Add(endTextBoxes[i]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int i = 0; i < TextBoxesCount; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (disabled != null && i < disabled.Length && disabled[i])
|
|
|
|
|
|
{
|
|
|
|
|
|
startTextBoxes[i].Enabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
startTextBoxes[i].Enabled = true;
|
|
|
|
|
|
enabledTextBoxes.Add(startTextBoxes[i]);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void Localize()
|
|
|
|
|
|
{
|
|
|
|
|
|
Text = Strings.Water_Meter_States;
|
|
|
|
|
|
for (int i = 0; i < TextBoxesCount; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
labels[i].Text = Strings.Water_Meter + " " + (i + 1).ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
startLabel.Text = Strings.Start;
|
|
|
|
|
|
endLabel.Text = Strings.End;
|
|
|
|
|
|
okButton.Text = Strings.OkBtnText;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void okButton_Click(object sender, EventArgs eArgs)
|
|
|
|
|
|
{
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
if (endStates)
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int i = 0; i < Math.Min(WaterMetersCount, TextBoxesCount); i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (endTextBoxes[i].Visible && endTextBoxes[i].Enabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
WMEndState[i] = Utils.ParseUFloat(endTextBoxes[i].Text);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
for (int i = 0; i < Math.Min(WaterMetersCount, TextBoxesCount); i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (startTextBoxes[i].Visible && startTextBoxes[i].Enabled)
|
|
|
|
|
|
{
|
|
|
|
|
|
WMStartStateStr[i] = startTextBoxes[i].Text;
|
|
|
|
|
|
WMStartState[i] = Utils.ParseUFloat(startTextBoxes[i].Text);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
catch(Exception e)
|
|
|
|
|
|
{
|
|
|
|
|
|
log.ErrorFormat("Exception: {0}", e.Message);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
completed = true;
|
|
|
|
|
|
Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region Forced close handling
|
|
|
|
|
|
|
|
|
|
|
|
public void StartForceCloseHandler()
|
|
|
|
|
|
{
|
|
|
|
|
|
UiBridge.Bridge.CloseModelessFormHandler += delegate(object sender, EventArgs args)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (InvokeRequired) { Invoke(new EventHandler<EventArgs>(OnForceClose), sender, args); }
|
|
|
|
|
|
else OnForceClose(sender, args);
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void OnForceClose(object sender, EventArgs args)
|
|
|
|
|
|
{
|
|
|
|
|
|
DialogResult = DialogResult.Cancel;
|
|
|
|
|
|
Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Calculate the approximate error and verify whether it is within limits.
|
|
|
|
|
|
/// Make an exclamation mark visible if out of range.
|
|
|
|
|
|
/// Similar event handler is implemented for all endTextBoxes (1..24).
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
private void endTextBox1_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox1.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox1.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { };
|
|
|
|
|
|
exclamation1.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox2_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox2.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox2.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation2.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox3_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox3.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox3.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation3.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox4_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox4.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox4.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation4.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox5_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox5.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox5.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation5.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox6_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox6.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox6.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation6.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox7_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox7.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox7.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation7.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox8_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox8.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox8.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation8.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox9_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox9.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox9.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation9.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void endTextBox10_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox10.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox10.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation10.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void endTextBox11_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox11.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox11.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation11.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox12_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox12.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox12.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation12.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox13_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox13.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox13.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation13.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox14_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox14.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox14.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation14.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox15_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox15.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox15.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation15.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox16_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox16.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox16.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation16.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox17_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox17.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox17.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation17.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox18_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox18.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox18.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation18.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox19_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox19.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox19.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation19.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox20_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox20.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox20.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation20.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox21_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox21.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox21.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation21.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox22_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox22.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox22.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation22.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox23_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox23.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox23.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation23.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
private void endTextBox24_TextChanged(object sender, EventArgs e)
|
|
|
|
|
|
{
|
2016-01-03 01:05:35 +00:00
|
|
|
|
double err = 0;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
float endState = Utils.ParseUFloat(endTextBox24.Text);
|
|
|
|
|
|
float startState = Utils.ParseUFloat(startTextBox24.Text);
|
2016-01-03 01:05:35 +00:00
|
|
|
|
err = 100.0 * (endState - startState - refVolume) / refVolume;
|
2015-10-05 08:11:59 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch { err = 1000.0f; };
|
|
|
|
|
|
exclamation24.Visible = (err < warningLimLo) || (warningLimHi < err);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Process a key press within any enabled text boxe
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
/// <param name="currentFocusOwner">TextBox control which received the event</param>
|
|
|
|
|
|
private void ProcKeyPress(object sender, KeyPressEventArgs e, TextBox currentFocusOwner)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (e.KeyChar == '+')
|
|
|
|
|
|
{
|
|
|
|
|
|
/// Process '+' key ..... Form completed
|
|
|
|
|
|
okButton_Click(sender, e);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (e.KeyChar == '\r')
|
|
|
|
|
|
{
|
|
|
|
|
|
/// Process <enter> key ..... Next text field
|
|
|
|
|
|
if (enabledTextBoxes.Count < 2) return; /// There is just one enabled textbox
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < enabledTextBoxes.Count; i++)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (enabledTextBoxes[i] == currentFocusOwner)
|
|
|
|
|
|
{
|
|
|
|
|
|
/// Change focus to the next enabled text box
|
|
|
|
|
|
enabledTextBoxes[(i + 1) % enabledTextBoxes.Count].Focus();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void startTextBox1_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox1); }
|
|
|
|
|
|
private void startTextBox2_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox2); }
|
|
|
|
|
|
private void startTextBox3_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox3); }
|
|
|
|
|
|
private void startTextBox4_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox4); }
|
|
|
|
|
|
private void startTextBox5_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox5); }
|
|
|
|
|
|
private void startTextBox6_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox6); }
|
|
|
|
|
|
private void startTextBox7_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox7); }
|
|
|
|
|
|
private void startTextBox8_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox8); }
|
|
|
|
|
|
private void startTextBox9_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox9); }
|
|
|
|
|
|
private void startTextBox10_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox10); }
|
|
|
|
|
|
private void startTextBox11_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox11); }
|
|
|
|
|
|
private void startTextBox12_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox12); }
|
|
|
|
|
|
private void startTextBox13_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox13); }
|
|
|
|
|
|
private void startTextBox14_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox14); }
|
|
|
|
|
|
private void startTextBox15_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox15); }
|
|
|
|
|
|
private void startTextBox16_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox16); }
|
|
|
|
|
|
private void startTextBox17_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox17); }
|
|
|
|
|
|
private void startTextBox18_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox18); }
|
|
|
|
|
|
private void startTextBox19_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox19); }
|
|
|
|
|
|
private void startTextBox20_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox20); }
|
|
|
|
|
|
private void startTextBox21_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox21); }
|
|
|
|
|
|
private void startTextBox22_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox22); }
|
|
|
|
|
|
private void startTextBox23_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox23); }
|
|
|
|
|
|
private void startTextBox24_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, startTextBox24); }
|
|
|
|
|
|
|
|
|
|
|
|
private void endTextBox1_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox1); }
|
|
|
|
|
|
private void endTextBox2_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox2); }
|
|
|
|
|
|
private void endTextBox3_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox3); }
|
|
|
|
|
|
private void endTextBox4_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox4); }
|
|
|
|
|
|
private void endTextBox5_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox5); }
|
|
|
|
|
|
private void endTextBox6_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox6); }
|
|
|
|
|
|
private void endTextBox7_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox7); }
|
|
|
|
|
|
private void endTextBox8_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox8); }
|
|
|
|
|
|
private void endTextBox9_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox9); }
|
|
|
|
|
|
private void endTextBox10_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox10); }
|
|
|
|
|
|
private void endTextBox11_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox11); }
|
|
|
|
|
|
private void endTextBox12_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox12); }
|
|
|
|
|
|
private void endTextBox13_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox13); }
|
|
|
|
|
|
private void endTextBox14_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox14); }
|
|
|
|
|
|
private void endTextBox15_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox15); }
|
|
|
|
|
|
private void endTextBox16_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox16); }
|
|
|
|
|
|
private void endTextBox17_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox17); }
|
|
|
|
|
|
private void endTextBox18_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox18); }
|
|
|
|
|
|
private void endTextBox19_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox19); }
|
|
|
|
|
|
private void endTextBox20_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox20); }
|
|
|
|
|
|
private void endTextBox21_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox21); }
|
|
|
|
|
|
private void endTextBox22_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox22); }
|
|
|
|
|
|
private void endTextBox23_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox23); }
|
|
|
|
|
|
private void endTextBox24_KeyPress(object sndr, KeyPressEventArgs e) { ProcKeyPress(sndr, e, endTextBox24); }
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|