2013-10-24 90 views
0

我目前正在VB.net中構建一個Web瀏覽器,我很難讓e.SuppressKeyPress = True工作。我在我的網址欄上使用此代碼,以便用戶可以按Enter鍵並導航到所需的頁面。我的整個代碼:Awesomium瀏覽器引擎 - 導航

Private Sub AddressBar_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles AddressBar.KeyUp 
    On Error Resume Next 
    If e.KeyCode = 13 Then 
     Dim textArray = AddressBar.Text.Split(" ") 
     If (AddressBar.Text.Contains(".") = True And AddressBar.Text.Contains(" ") = False And AddressBar.Text.Contains(" .") = False And AddressBar.Text.Contains(". ") = False) Or textArray(0).Contains(":/") = True Or textArray(0).Contains(":\") Then 
      Navigate(AddressBar.Text) 
     Else 
      Navigate("http://www.google.com/search?q=" + AddressBar.Text) 
     End If 
     WebControl.Focus() 
     e.SuppressKeyPress = True 
    End If 
End Sub 

我試圖移動e.SuppressKeyPress = True到多個不同的地方,他們沒有工作。有什麼建議麼?

+0

您有什麼理由爲什麼您最近要製作自己的瀏覽器? :) – Neolisk

+0

其實,我只是這樣做,因爲我沒有更好的辦法。 – Charles

+0

加入一個開源項目,並幫助開發像Google Chrome這樣的瀏覽器。或者其他任何開源項目。或者,如果您不喜歡開放源代碼,請創建一個不在您之前的應用程序。或者您使用的應用程序的改進版本。在此之前做你的研究,但保持簡單。不要試圖從重寫Visual Studio開始。 Google是你的朋友。重塑車輪是你時間最糟糕的投資。 – Neolisk

回答

0

您不能在KEYUP事件中禁止密鑰,密鑰已被處理。即使給你這個選項,微軟也很愚蠢。在示例應用中試用此代碼並對結果進行比較

Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown 
    If e.KeyCode = Keys.A Then 
     e.SuppressKeyPress = True 
    End If 
End Sub 
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress 
    If e.KeyChar = "b" Then 
     e.Handled = True 
    End If 
End Sub 
Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp 
    If e.KeyCode = Keys.C Then 
     e.SuppressKeyPress = True 
    End If 
End Sub 
+0

我看到現在我無法做到這一點,有沒有什麼辦法擺脫這種聲音?我使用「Web瀏覽器項目」源代碼,因爲該瀏覽器使用了抑制鍵按下功能。 – Charles

+0

什麼意思,「有什麼辦法擺脫聲音」?什麼聲音? – Steve

+0

當您在不是多行的文本框中按回車時。 – Charles