2012-07-04 77 views
1

我在做什麼錯?以下是錯誤代碼,我得到:爲什麼我無法訪問System.EventArgs的KeyCode成員?

「System.EventArgs」不包含「邀請碼」,並沒有擴展方法「邀請碼」接受一個類型的第一個參數定義「System.EventArgs」可尋(是否缺少using指令或程序集引用?)

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace BroZer 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Reload_Click(object sender, EventArgs e) 
     { 
      webBrowser1.Refresh(); 
     } 

     private void Go_Click(object sender, EventArgs e) 
     { 
      webBrowser1.Navigate(textBox1.Text); 
     } 

     private void Back_Click(object sender, EventArgs e) 
     { 
      webBrowser1.GoBack(); 
     } 

     private void Forward_Click(object sender, EventArgs e) 
     { 
      webBrowser1.GoForward(); 
     } 

     private void textBox1_KeyDown(object sender, EventArgs e) 
     { 
      if (e.KeyCode == Keys.Enter) 
      { 
       webBrowser1.Navigate("https://www.google.com/search?&ie=UTF-8&q=" + textBox1.Text); 
      } 
     } 

     private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 

     } 

     private void Save_Click(object sender, EventArgs e) 
     { 
      webBrowser1.ShowSaveAsDialog(); 
     } 

     private void Print_Click(object sender, EventArgs e) 
     { 
      webBrowser1.ShowPrintPreviewDialog(); 
     } 
    } 
} 

回答

1

更新:我想通了。所有你需要做的是改變

(object sender, EventArgs e) 

(object sender, KeyEventArgs e) 
2

爲了最大限度地提高您的IDE使用(即Visual Studio中),鍵入:textBox1.KeyDown + = 標籤標籤

它會給你事件的委託方法定義的確切簽名。


如果您的KeyDown的代碼是非常瑣碎的,你不想把它放在單獨的方法,你可以選擇內聯的代碼,即你可以在lambda嵌入代碼:

textBox1.KeyDown += (s,e) => 
    if (e.KeyCode == Keys.Enter) 
     webBrowser1.Navigate(
      "https://www.google.com/search?&ie=UTF-8&q=" + textBox1.Text); 

自動完成仍適用於lambda,即當您輸入:if (e.時,KeyCode將出現在自動完成的下拉列表中。使用lambda時,您不需要知道委託方法的確切簽名。

0

要在文本框中KeyDown事件的textBox1分配給textBox1_KeyDown,在設計模式點擊在性能窗口看起來和事件點擊按鈕,並尋找的keydown並雙擊它。 enter image description here

相關問題