private void txtBox_Validating(object sender, System.ComponentModel.CancelEventArgs e) { var box = (TextBox)sender; Single s = 0; if (Single.TryParse(box.Text, NumberStyles.Number, FlummeryApplication.Culture, out s)) { box.Text = s.ToString(); box.Tag = s; } else { box.Text = box.Tag.ToString(); } switch (box.Name.Substring(0, box.Name.Length - 1).Replace("txt", "")) { case "Position": bone.SetPosition(txtPositionX.Text.ToSingle(), txtPositionY.Text.ToSingle(), txtPositionZ.Text.ToSingle(), rdoAbsolute.Checked); break; case "Rotation": bone.SetRotation(txtRotationX.Text.ToSingle(), txtRotationY.Text.ToSingle(), txtRotationZ.Text.ToSingle(), rdoAbsolute.Checked); break; case "Scale": Single divisor = (rdoAbsolute.Checked ? 1.0f : 100.0f); bone.SetScale(txtScaleX.Text.ToSingle() / divisor, txtScaleY.Text.ToSingle() / divisor, txtScaleZ.Text.ToSingle() / divisor, rdoAbsolute.Checked); break; } SceneManager.Current.Change(ChangeType.Transform, SceneManager.Current.SelectedBoneIndex); resetWidget(); }