在控件里添加了自定义的事件 OnSelectionChanged public class SelectionChangedEventArgs : EventArgs
{
Range m_range; public SelectionChangedEventArgs(Range axSht)
{
m_range = axSht;
} public Range Range
{
get { return m_range; }
}
} public delegate void SelectionChangedHandler(Object sender, SelectionChangedEventArgs e); //SelectionChanged事件
public event SelectionChangedHandler SelectionChanged; protected virtual void OnSelectionChanged(Object sender, SelectionChangedEventArgs e)
{
if (SelectionChanged != null)
{
SelectionChanged( sender,e );
}
} private void axSpreadsheet1_SelectionChange(object sender, EventArgs e)
{
AxSpreadsheet p = (AxSpreadsheet)sender;
Range r = p.Selection;
SelectionChangedEventArgs s = new SelectionChangedEventArgs(r);
if (p != null)
{
OnSelectionChanged(p, s);
}
}对JavaScript不是很熟,在JavaScript里如何触发这个事件呢。。
<body bgcolor='#223344'>
<object id="ss"
classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3A" OnSelectionChanged="SelectChange(这里怎么写?)">
</object>
</body>
</HTML><SCRIPT LANGUAGE="JavaScript">
<!--
function SelectChange(???)
{
alert("aaaa");
}
//-->
</SCRIPT>
{
Range m_range; public SelectionChangedEventArgs(Range axSht)
{
m_range = axSht;
} public Range Range
{
get { return m_range; }
}
} public delegate void SelectionChangedHandler(Object sender, SelectionChangedEventArgs e); //SelectionChanged事件
public event SelectionChangedHandler SelectionChanged; protected virtual void OnSelectionChanged(Object sender, SelectionChangedEventArgs e)
{
if (SelectionChanged != null)
{
SelectionChanged( sender,e );
}
} private void axSpreadsheet1_SelectionChange(object sender, EventArgs e)
{
AxSpreadsheet p = (AxSpreadsheet)sender;
Range r = p.Selection;
SelectionChangedEventArgs s = new SelectionChangedEventArgs(r);
if (p != null)
{
OnSelectionChanged(p, s);
}
}对JavaScript不是很熟,在JavaScript里如何触发这个事件呢。。
<body bgcolor='#223344'>
<object id="ss"
classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3A" OnSelectionChanged="SelectChange(这里怎么写?)">
</object>
</body>
</HTML><SCRIPT LANGUAGE="JavaScript">
<!--
function SelectChange(???)
{
alert("aaaa");
}
//-->
</SCRIPT>
<object id="helloworld"
classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3E" codebase="Self.cab#version=1,3,0"
>
</object> 2、这样调用:
<input type="button" onclick="alert(helloworld.GetDefaultPrintStatus())" value="GetDefaultPrinterStatus">
我以前也做过,但我后来改用了vbs,由于VBS对于函数并不需要注册,所以直接定义个函数就完了。JS你可以考虑看看!
VBS中:
比如你的事件是SelectionChange(args)
那么VBS直接定义个 SelectionChange(args)的函数就可以了。对于OBJECT标签那里也不需要写这样的OnSelectionChanged="SelectChange()"的代码!当ACTIVEX触发SELECTIONcHANGE事件,就自动执行到你定义的函数里去了,参数也有哈!
貌似是用的<SCRIPT FOR="">那种方式,然后下面就直接定义事件函数就完了。我当时也是网上找的。之所以后来改用了VBS主要是因为JS中的变量都是指,而VBS的变量是引用,引用可以用来返回值。而我那OCX有些方法需要返回值,所以后来改了。
xxxx
</script>
.NET的事件里有2个参数: object sender, EnventArgs e
(第一个sender是控件本身,第二个e是事件参数)我不明白的是对于JS来说,如何使用自定义的事件?
你可以就按照一般的方式来处理试下。
alert("触发了xx事件");
</script>