当第二个窗体在C#.net中打开时,如何停止第一个窗体的函数

本文关键字:窗体 何停止 函数 第一个 第二个 net | 更新日期: 2023-09-27 18:01:05

我是编程新手。提前道歉

我正在使用Speak功能。当第一个窗体是隐藏的,而第二个窗体是打开的。Speak功能仍然有效。我想停止这个功能。我怎么能做这个

  //Second Form      
  private void button1_Click(object sender, EventArgs e)
    {
        Form2.Show();
        this.Hide();
    }
     //Speak Button 
   private void button2_Click(object sender, EventArgs e)
  {         
        sSynth.Dispose();
        if (textBox1.Text != "") //if text area is not empty
        {
            sSynth = new SpeechSynthesizer();
            sSynth.SpeakAsync(textBox1.Text);
            sSynth.SpeakCompleted+=new
          EventHandler<SpeakCompletedEventArgs(reader_SpeakCompleted);
        }
    }
    private void reader_SpeakCompleted(object sender,                           SpeakCompletedEventArgs e)
    {
    }

当第二个窗体在C#.net中打开时,如何停止第一个窗体的函数

要取消所有后台异步语音,有一个非常好的cancel方法,您应该从第一个窗体调用:

sSynth.SpeakAsyncCancelAll ();

取消所有排队、异步、语音合成操作

或者要取消特定的提示,请使用以下提示:

sSynth.SpeakAsyncCancel (_prompt);

其中_prompt是上一个sSynth.SpeakAsync(...)的返回值,应该如下所示:

_prompt = sSynth.SpeakAsync(something);

更多

  • SpeechSynthesizer.SpeakAsyncCancelAll