private void GetCoordinateValue(TextBox textBox)
{
int tag = int.Parse((string)textBox.Tag);
int pointIndex = tag / 10;
int coordinateIndex = tag % 10;
float coordinateValue, oldValue = 0;
textBox.Text = textBox.Text.Trim();
// try parsing the coordinate value
if (float.TryParse(textBox.Text, NumberStyles.Float, CultureInfo.InvariantCulture, out coordinateValue))
{
switch (coordinateIndex)
{
case 0:
oldValue = modelPoints[pointIndex].X;
modelPoints[pointIndex].X = coordinateValue;
break;
case 1:
oldValue = modelPoints[pointIndex].Y;
modelPoints[pointIndex].Y = coordinateValue;
break;
case 2:
oldValue = modelPoints[pointIndex].Z;
modelPoints[pointIndex].Z = coordinateValue;
break;
}
errorProvider.Clear();
if (oldValue != coordinateValue)
{
ClearEstimation();
}
}
else
{
Label pointLabel = (Label)modelPointsGroupBox.Controls[string.Format("modelPoint{0}Label", pointIndex + 1)];
errorProvider.SetError(pointLabel, string.Format("Failed parsing {0} coordinate",
(coordinateIndex == 0) ? "X" : ((coordinateIndex == 1) ? "Y" : "Z")));
textBox.Text = string.Empty;
}
}