2010-06-11 97 views
0

他們給我以獲取具有焦點,只允許我想要的形式提交表單以下僞代碼:VB.net回車鍵

<script> var currentForm = document.forms[0];</script> 
<form ...><input onfocus="currentForm = this.form;"/></form> 
<form ...><input onfocus="currentForm = this.form;"/></form> 

function globalKeyPressed(event) { 
    if (event.keyCode == ENTER) { // This is pseudo-code, check how to really do it 
    currentForm.submit(); 
    } 
} 

我將如何做到這一點的VB。因爲VB.net不接受System.Windows.Forms.KeyPressEventArgs。我還想補充一點,我的網站上不能有多個表單,因爲它破壞了登錄視圖。所以我的2個單獨的'表單'實際上只是一個loginview,然後是一個asp:textbox和asp:button本身沒有表單。

+0

這是winforms或webforms?換句話說,你正在編寫一個桌面應用程序或一個網絡應用程序? – 2010-06-11 13:18:50

+0

....我的網站上有多個表單... n asp:textbox和asp:button by ....我猜web – 2010-06-11 13:20:30

+0

是的,這是一個web應用 – BioXhazard 2010-06-11 13:23:27

回答

2

上面看起來像在客戶端完成的JavaScript功能,而不是服務器端事件。如果是這樣的話,那麼在VB.NET中將沒有區別,因爲它也將使用Javascript作爲客戶端語言。

所有你需要做的是連接一臺客戶端點擊事件的按鈕,並運行代碼,你一直在考慮,將其更改爲(把我的頭頂部)

if (event.keyCode == 13){ 
    //Submit form. 
} 

您可以通過使用attributes.add在表單的Page_Load事件中,像添加客戶端點擊:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     textbox1.attributes.add("onKeyUp", "globalKeyPressed") 
End Sub 

這將進而導致globalKeyPressed()事件從您的文本框每當鍵調被按下。 globalKeyPressed()事件將導致當前表單被提交。

+0

但是代碼是什麼樣子? – BioXhazard 2010-06-11 13:25:49

+0

我不明白。第二部分應該到哪裏去?我不斷收到這些表單標籤的錯誤。 – BioXhazard 2010-06-11 13:31:28

+0

@Andrew - ASP.Net webforms只允許你有一個主窗體。您無法在頁面上放置自己的較小表單。 – 2010-06-11 13:40:15

0

使用ASP.Net,整個頁面總是發佈,通常是右後衛自己。您的VB.Net代碼必須處理您放置在頁面上的服務器控件的事件,例如按鈕的Click事件或LoginView的ViewChanged事件。