我做错了什么?这是我得到的错误代码:
'System.EventArgs'不包含'KeyCode'的定义,并且没有扩展方法'KeyCode'接受类型'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();
}
}
}
答案 0 :(得分:2)
要最大化IDE的使用(即Visual Studio),请输入:textBox1.KeyDown + = Tab Tab
它将为您提供事件委派方法定义的确切签名。
如果您的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,您无需知道委派方法的确切签名。
答案 1 :(得分:1)
更新:我明白了。你所要做的就是改变
(object sender, EventArgs e)
到
(object sender, KeyEventArgs e)
答案 2 :(得分:0)
要将KeyDown
textBox1
事件分配到textBox1_KeyDown
,请在设计模式下点击文本框,然后查看属性窗口并点击事件按钮并查找 keydown 并双击它。