2011-03-30 69 views

回答

1

不,你需要發動一個事件。如果它只是Internet Explorer然後可以很容易地通過2所需的按鍵值,即

NameValueCollection eventProperties = new NameValueCollection(); 
    eventProperties.Add("button", "2"); 
    yourElement.FireEvent("onmousedown", eventProperties); 

如果您正在使用FireFox的工作那麼它是不是那麼簡單的,你可以閱讀我的older question到的華廷開發人員親切迴應。正如他在其他地方注意到的,這應該在WatiN中。

同樣的方法可以讓你在FireFox中拖放。

1

你可以嘗試:

myElement.FireEvent("oncontextmenu") 

這將觸發JavaScript事件,將打開的元素上下文菜單,這是當你右鍵點擊一個元素是什麼通常發生。它在Internet Explorer中適用於我,但我沒有在FireFox中進行測試。

0

仁是在這裏(你應該接受她的回答)。

FireEvent("oncontextmenu")在樹節點上不工作,直到我找到事件出現的元素。

節點通常是Div控制和我實現它是這樣的:

// Selecting node span first 
myDiv.Spans[0].Click(); 
// Firing the event on the Div 
myDiv.FireEvent("oncontextmenu"); 

樹節點(和所有其他複雜的DOM結構)的主要問題是火就不錯了事件DOM元素。

在最複雜的DOM結構中,事件是由的JavaScript控件的Init()期間代碼(Telerik的做它例如)附接。所以你不能在HTML源代碼中看到事件。

如果找不到事件,則必須使用Visual Studio進行調試。

要了解什麼我'談論,這裏是如何事件可能使用JavaScript裝戴例子:

TreeView.prototype.OnInit=function(){ 
this.AttachAllEvents(); 
} 

TreeView.prototype.AttachAllEvents=function(){ 
var _this=this; 
var _container=document.getElementById(this.Container); 
_container.onfocus=function(e){ 
eventDispatcher(_this.ClientID,"focus",e); 
}; 
_container.onmouseover=function(e){ 
eventDispatcher(_this.ClientID,"mouseover",e); 
}; 
_container.onmouseout=function(e){ 
eventDispatcher(_this.ClientID,"mouseoout",e); 
}; 
_container.oncontextmenu=function(e){ 
eventDispatcher(_this.ClientID,"contextmenu",e); 
}; 
_container.onclick=function(e){ 
eventDispatcher(_this.ClientID,"click",e); 
}; 
_container.ondblclick=function(e){ 
eventDispatcher(_this.ClientID,"doubleclick",e); 
}; 
_container.onkeydown=function(e){ 
eventDispatcher(_this.ClientID,"keydown",e); 
}; 
if(window.attachEvent){ 
window.attachEvent("onunload",function(){ 
_this.Dispose(); 
}); 
} 
};