private void connectBtn_Click(object sender, EventArgs e) { new Thread(() => { switch (connectBtn.Text) { // собираемся подключаться case connectText: status.Invoke(new Action(() => status.Items[0].Text = "Подключение к " + deviceCombo.Items[deviceCombo.SelectedIndex])); enablingComponents(false, deviceCombo, connectBtn, scanBtn); // пытаемся открыть порт if (myBt.open()) { // меняем текст кнопки на "Отключиться" connectBtn.Invoke(new Action(() => connectBtn.Text = disconnectText)); // возвращаем кнопке подключения доступность enablingComponents(true, connectBtn); lightShow.Start(); } else { enablingComponents(true, deviceCombo, connectBtn, scanBtn); } status.Invoke(new Action(() => status.Items[0].Text = "")); break; // собираемся отключаться case disconnectText: // меняем текст кнопки на "Подключиться" connectBtn.Invoke(new Action(() => connectBtn.Text = connectText)); // возвращаем кнопке подключения доступность enablingComponents(true, deviceCombo, scanBtn); // останавливаем обработку цветомузыки lightShow.Stop(); // закрываем соединение с устройством myBt.close(); break; } // TODO: другой поток! ActiveControl = spectrumChart; }).Start(); }
private void MainForm_KeyDown(object sender, KeyEventArgs e) { e.SuppressKeyPress = true; if (e.KeyData == Keys.S) { int channelsNumber = Settings.Default.channelsNumber; new SettingsForm().ShowDialog(); TopMost = Settings.Default.topMost; coloringComponents(); if (channelsNumber != Settings.Default.channelsNumber) { for (int i = 0; i < 4; i++) { tbValues[0, i] = tbValues[1, i] = 0; } if (connectBtn.Text == disconnectText) { lightShow.Stop(); } TrackBar[] bars = trackInit(); lightShow = new LightShow(myBt, spectrumChart, bars, fadeCheckBox, barsCheckBox, lightCheckBox); if (connectBtn.Text == disconnectText) { lightShow.Start(); } } e.Handled = true; } }