/// /// Copyright (c) 2018 Sensus Slovensko a.s. /// using System; using System.Windows.Forms; using log4net; using TBF.Resources; namespace TBF.BenchControl.Various.ManualLevelMsrmnt { public partial class WaterLevelForm : Form { private static readonly ILog log = LogManager.GetLogger(typeof(WaterLevelForm)); // Set to 'true' when the form closes public bool Completed { get { return completed; } } bool completed; /// Water level in mm entered by the user public double Level_mm; /// /// Constructor to fill in start states /// /// Number of text boxes for serial numbers public WaterLevelForm() { InitializeComponent(); ControlBox = false; Level_mm = 0; completed = false; StartForceCloseHandler(); } private void WaterLevelForm_Load(object sender, EventArgs e) { Localize(); } void Localize() { Text = Strings.Water_level_in_mm; waterLevelGroupBox.Text = Strings.Water_level_in_mm; okButton.Text = Strings.OkBtnText; } private void waterLevelTextBox_TextChanged(object sender, EventArgs e) { double dummy; okButton.Enabled = Utils.TryParseUDouble(waterLevelTextBox.Text, out dummy); } private void okButton_Click(object sender, EventArgs eArgs) { log.Debug("okButton_Click(..)"); try { Level_mm = Utils.ParseUDouble(waterLevelTextBox.Text); } catch (Exception e) { log.ErrorFormat("Exception: {0}", e.Message); return; } completed = true; Close(); } #region Forced close handling /// /// Used by CoverTest, AskYesNoOp and MessageBoxOp. /// public void OnCloseThisForm(object sender, EventArgs args) { if (CloseThisFormHandler == null) return; try { CloseThisFormHandler(sender, null); } catch (Exception e) { log.Error("CloseThisFormHandler(...) failed", e); } } public event EventHandler CloseThisFormHandler; public void StartForceCloseHandler() { CloseThisFormHandler += delegate(object sender, EventArgs args) { if (InvokeRequired) Invoke(new EventHandler(OnForceClose), sender, args); else OnForceClose(sender, args); }; } private void OnForceClose(object sender, EventArgs args) { DialogResult = DialogResult.Cancel; Close(); } #endregion } }