【问题标题】:c# Double Agent command event handlerc# Double Agent 命令事件处理程序
【发布时间】:2015-05-09 12:33:33
【问题描述】:

这里我说的是 Double Agent(Windows7/8 版本的 MS Agent,我想和 office 2007 一样)。

很抱歉,我说的是完整的产品,但我真的很生气赶上一个事件(捆绑的样本对此没有帮助)...

在示例中我有一个类似的句柄:

public MsaWithDa()
{
    InitializeComponent();

    mDaControl = new DoubleAgent.Control.Control ();
    mDaControl.Show += new DoubleAgent.Control.ShowEventHandler (mDaControl_Show);
}

还有这个:

private void mDaControl_Show(string CharacterID, DoubleAgent.Control.VisibilityCauseType Cause)
{
    SetDaControlButtons();
}

现在我需要处理一个不同的事件(当用户从​​代理的菜单中选择一个命令时).. 我有这个

private void mainAgent_Command(object sender, AgentObjects.IAgentCtlCommand e) 
{
        mDaControlChar.Play("Wave");
        mDaControlChar.Speak("Hello!");
}

根据产品的用户手册:

当您的应用程序处于输入活动状态时,Double Agent 会发送此事件 并且用户从角色的弹出菜单中选择一个命令,或者通过 语音输入。

public event CtlCommandEventHandler CtlCommand

我在主窗体中添加了这个:

mDaControl.Command += new DoubleAgent.Control.Command(mDaControl_Command);

但是缺少一些东西,我必须通过这两个值才能进行测试。

抱歉,我知道这是一个愚蠢的问题,而且肯定是超级基础,但这是我第一次需要在 c# 中使用事件处理程序

希望有人帮忙,非常感谢

编辑: 基于这篇文章:Understanding events and event handlers in C#

我现在编码:

public delegate void MyEventHandler(object sender, AgentObjects.IAgentCtlCommand e);
public event MyEventHandler AgentObjects;

还有这个:

    private void InitializeAgent()
    {
          mDaControl.Command += new MyEventHandler(HandleSomethingHappened);
    }

    private void HandleSomethingHappened(object sender, AgentObjects.IAgentCtlCommand e) 
{
        mDaControlChar.Play("Wave");
        mDaControlChar.Speak("Hello!");
}

但是我这里有一个错误:

new MyEventHandler(HandleSomethingHappened)

错误 1 ​​无法隐式转换类型“XCopyPro.Main.MyEventHandler” 到 'DoubleAgent.Control.CommandEventHandler' C:\Users\Shawn\Documents\Visual 工作室 2013\Projects\XCopyPro\XCopyPro\FormMain.cs 159 37 XCopyPro

【问题讨论】:

    标签: c# handle agent


    【解决方案1】:

    您应该能够执行新的 DoubleAgent.Control.CommandEventHandler 而不是新的 MyEventHandler。只要您的方法与 DoubleAgent 事件处理程序具有相同的签名,它就应该可以工作。

    【讨论】:

    • 这个:mDaControl.Command += new DoubleAgent.Control.CommandEventHandler(HandleSomethingHappened);产生错误 1 ​​'HandleSomethingHappened' 没有重载匹配委托 'DoubleAgent.Control.CommandEventHandler' C:\Users\Shawn\Documents\Visual Studio 2013\Projects\XCopyPro\XCopyPro\FormMain.cs 159 37 XCopyPro
    【解决方案2】:

    对不起,我是 C# 的新手!没有文档,你不应该帮助我...

    我按照手册解决了自己...

    代码很简单,在某处:

    mDaControl.Command += new DoubleAgent.Control.CommandEventHandler(mDaControl_Commands);
    

    还有这个:

    private void mDaControl_Commands(DoubleAgent.Control.UserInput e)
    {
        mDaControlChar.Play("Wave");
        mDaControlChar.Speak("Hello!");
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      相关资源
      最近更新 更多