如何在c#上发生表单加载时打开旁白?

时间:2013-06-22 13:09:12

标签: c# .net winforms

我想在我的form1加载发生时打开Windows旁白,并在表单关闭时停止叙述。

http://msdn.microsoft.com/en-us/library/system.speech.synthesis.aspx

我通过上面的链接但没有帮助。 确保我的要求不是字符串。

请帮忙。

1 个答案:

答案 0 :(得分:1)

在表单中,您希望挂钩Load事件和FormClosing事件。在构造函数中,初始化合成器。在Load事件中异步启动语音,然后在FormClosing事件中取消语音并处理你的合成器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Speech.Synthesis;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class SpeachForm : Form
    {
        SpeechSynthesizer _synth;

        public SpeachForm()
        {
            InitializeComponent();

            _synth = new SpeechSynthesizer();
        }

        private void SpeachForm_Load(object sender, EventArgs e)
        {
            // Configure the audio output. 
            _synth.SetOutputToDefaultAudioDevice();

            // Speak a string.
            var msg = "The text you want to say.";
            _synth.SpeakAsync(msg);
        }

        private void SpeachForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            _synth.SpeakAsyncCancelAll();
            _synth.Dispose();
        }
    }
}

此表格通过以下方式从另一种表格中调用:

var frm = new SpeachForm();
frm.ShowDialog();