protected override void OnShown(EventArgs e) { base.OnShown(e); comboBoxBrightness.Items.Add(OrbBrightness.Bright.ToString()); comboBoxBrightness.Items.Add(OrbBrightness.Medium.ToString()); comboBoxBrightness.Items.Add(OrbBrightness.Dim.ToString()); checkBoxButtonsEnabled.Checked = true; using (OrbPicker orbPicker = new OrbPicker()) { if (orbPicker.ShowDialog() == DialogResult.OK) { try { groupBoxSerialOnly.Enabled = orbPicker.SerialMode; if (orbPicker.SerialMode) { _orbSerial = new OrbSerialController(orbPicker.ComPort); _orb = _orbSerial; // register for button state changes _orbSerial.OrbButtonChanged += new EventHandler <OrbButtonsEventArgs>(_orbSerial_OrbButtonChanged); } else { _orb = new OrbPagerController(orbPicker.DeviceId); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Ambient Orb Tester - Failed to create OrbController", MessageBoxButtons.OK, MessageBoxIcon.Hand); // quit if no orb Close(); } } else { // just quit if no connection selected Close(); } } }
protected override void OnClosing(CancelEventArgs e) { base.OnClosing(e); // if we have a serial orb controller unhook the button changed event if (_orbSerial != null) { _orbSerial.OrbButtonChanged -= _orbSerial_OrbButtonChanged; _orbSerial = null; } // always dispose the orb controller if (_orb != null) { _orb.Dispose(); _orb = null; } }