diff --git a/Meade.net/SetupDialogForm.cs b/Meade.net/SetupDialogForm.cs index 6bf7613..36c8dac 100644 --- a/Meade.net/SetupDialogForm.cs +++ b/Meade.net/SetupDialogForm.cs @@ -5,7 +5,7 @@ using System.Windows.Forms; namespace ASCOM.Meade.net { - [ComVisible(false)] // Form not registered for COM! + [ComVisible(false)] // Form not registered for COM! public partial class SetupDialogForm : Form { public SetupDialogForm() @@ -33,14 +33,15 @@ namespace ASCOM.Meade.net { MessageBox.Show(other.Message); } - } + } public void SetProfile(ProfileProperties profileProperties) { chkTrace.Checked = profileProperties.TraceLogger; // set the list of com ports to those that are currently available comboBoxComPort.Items.Clear(); - comboBoxComPort.Items.AddRange(System.IO.Ports.SerialPort.GetPortNames()); // use System.IO because it's static + comboBoxComPort.Items.AddRange(System.IO.Ports.SerialPort + .GetPortNames()); // use System.IO because it's static // select the current port if possible if (comboBoxComPort.Items.Contains(profileProperties.ComPort)) { @@ -56,7 +57,7 @@ namespace ASCOM.Meade.net { TraceLogger = chkTrace.Checked, ComPort = comboBoxComPort.SelectedItem.ToString(), - GuideRateArcSecondsPerSecond = double.Parse(txtGuideRate.Text) + GuideRateArcSecondsPerSecond = double.Parse(txtGuideRate.Text.Trim()) }; return profileProperties; @@ -67,15 +68,38 @@ namespace ASCOM.Meade.net Activate(); } + private bool _guideRateValid = true; + private void TextBox1_TextChanged(object sender, EventArgs e) { - //const double SIDRATE = 0.9972695677; //synodic/solar seconds per sidereal second - var newGuideRate = double.Parse(txtGuideRate.Text); + //const double SIDRATE = 0.9972695677; //synodic/solar seconds per sidereal second + try + { + double newGuideRate = double.Parse(txtGuideRate.Text.Trim()); - const double siderealArcSecondsPerSecond = 15.041; - var percentOfSideReal = (newGuideRate / siderealArcSecondsPerSecond * 100); + const double siderealArcSecondsPerSecond = 15.041; + var percentOfSideReal = (newGuideRate / siderealArcSecondsPerSecond * 100); - lblPercentOfSiderealRate.Text = $"({percentOfSideReal:00.0}% of sidereal rate)"; + lblPercentOfSiderealRate.Text = $"({percentOfSideReal:00.0}% of sidereal rate)"; + _guideRateValid = true; + } + catch (Exception exception) + { + //Surpressing this exception as if the value is not valid then it's not useful. + _guideRateValid = false; + } + + UpdateOKButton(); + } + + private void UpdateOKButton() + { + cmdOK.Enabled = _guideRateValid && (comboBoxComPort.SelectedItem != null); + } + + private void ComboBoxComPort_SelectedValueChanged(object sender, EventArgs e) + { + UpdateOKButton(); } } } \ No newline at end of file diff --git a/Meade.net/SetupDialogForm.designer.cs b/Meade.net/SetupDialogForm.designer.cs index b09f711..a714e67 100644 --- a/Meade.net/SetupDialogForm.designer.cs +++ b/Meade.net/SetupDialogForm.designer.cs @@ -89,6 +89,7 @@ namespace ASCOM.Meade.net this.comboBoxComPort.FormattingEnabled = true; resources.ApplyResources(this.comboBoxComPort, "comboBoxComPort"); this.comboBoxComPort.Name = "comboBoxComPort"; + this.comboBoxComPort.SelectedValueChanged += new System.EventHandler(this.ComboBoxComPort_SelectedValueChanged); // // label3 //