簡體   English   中英

VB.net輸入密鑰

[英]VB.net Enter Key

我得到了以下偽代碼,以便獲得具有焦點的表單,並且只允許提交我要提交的表單:

<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.net不接受System.Windows.Forms.KeyPressEventArgs,因此如何為VB.net做到這一點。 我還想補充一點,我不能在我的網站上使用多種表單,因為它會破壞登錄視圖。 所以我的2個獨立的“表單”實際上只是一個loginview,然后是一個asp:textbox和asp:button而沒有表單。

以上內容看起來像是在客戶端完成的javascript函數,而不是服務器端事件。 如果真是這樣,那么VB.NET也將不會有任何區別,因為它還將Javascript作為客戶端語言使用。

您需要做的就是將客戶端單擊事件掛接到按鈕上,然后按照給出的代碼運行代碼,將其更改為(超出我的heaD頂部)

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

您可以通過在表單的Page_Load事件中使用attribute.add來添加客戶端單擊,例如:

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()事件將導致當前表單被提交。

使用ASP.Net,整個頁面通常都會發回,通常會直接返回到自身。 您的VB.Net代碼必須處理來自您放在頁面上的服務器控件的事件,例如按鈕的click事件或LoginView的ViewChanged事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM