首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IE宿主的windows窗体控件中使用事件

在IE宿主的windows窗体控件中使用事件
EN

Stack Overflow用户
提问于 2008-11-18 17:36:18
回答 2查看 840关注 0票数 1

我已经创建了一个windows窗体控件,它可以成功地托管在Internet Explorer中。我想给它一个事件,并且能够通过javascript响应这个事件。我在here上找到了一个关于它的链接。它向我展示了如何创建接口,但是我不确定如何从我的控件中触发事件?

下面是我的代码snippetS:

代码语言:javascript
复制
//Control Code:
public class CardReader : Panel,ICardReaderEvents, ICardReaderProperties
{
   public void Error()
   {
   }
   public void Success()
   {
   }
}

//Interface for events
[Guid("DD0C202B-12B4-4457-9FC6-05F88A6E8BC5")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface ICardReaderEvents
{
    [DispId(0x60020000)]
    void Error();

    [DispId(0x60020001)]
    void Success();
}

//Interface for public properties/methods
public interface ICardReaderProperties
{
     ...
}

//JavaScript to handle events
<SCRIPT FOR="CardReader1" EVENT="Error">
    window.status = "Error...";
</SCRIPT>

<SCRIPT FOR="CardReader1" EVENT="Success">
    window.alert("Success");
    window.status = "";
</SCRIPT>
EN

回答 2

Stack Overflow用户

发布于 2008-11-18 17:49:29

您在CardReader类中错误地实现了它:

代码语言:javascript
复制
public event Error;
public event Success;

protected void OnError()
{
    if(Error != null)
        Error();
}

protected void OnSuccess()
{
    if(Success != null)
        Success();
}

如果您的ICardReaderEvents接口更改为使用Error和Success参数,那么只需在OnError和OnSuccess中调用它们即可。

票数 1
EN

Stack Overflow用户

发布于 2008-11-18 19:31:31

那么,现在您需要知道如何在Javascript中挂接它了?下面是我知道如何做到这一点:

代码语言:javascript
复制
<object id="CR" ...></object>

<script type="text/javascript">
  function CR::Error()
  {
    alert("Error!");
  }

  function CR::Success()
  {
    alert("Success");
  }
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/299497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档