以下是我在调试时遇到的错误:
错误1字符文字中的字符过多 错误2'System.Windows.Forms.WebBrowser.Navigate(string)'的最佳重载方法匹配有一些无效的参数 错误3参数1:无法从'char'转换为'string'
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_TextChanged(object sender, EventArgs e)
{
webBrowser1.Navigate('https://www.google.com/search?&ie=UTF-8&q= + (textBox1.Text)');
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
}
}
}
所有错误都在第41行。
答案 0 :(得分:7)
'https://www.google.com/search?&ie=UTF-8&q= +(textBox1.Text)'
我知道你认为应该做什么,但这是错误的。
'x'
表示字符字面值(即char
的实例,而不是string
。在这种情况下,字符x
) ,但你像字符串一样使用它,然后想要将textbox1.Text
插入其中,但C#根本不支持这种类型的直接插值。你想写:
// concatenate a string literal and a string variable
"https://www.google.com/search?&ie=UTF-8&q=" + textBox1.Text;
接下来的两条错误消息是第一条消息的直接结果。这里的错误信息非常清楚,你最好搜索它们的含义并尝试推断出问题的根本原因。
答案 1 :(得分:5)
更改行
webBrowser1.Navigate('https://www.google.com/search?&ie=UTF-8&q= + (textBox1.Text)');
到
webBrowser1.Navigate(string.Format("https://www.google.com/search?&ie=UTF-8&q={0}", textBox1.Text);
这是因为Navigate方法需要String或Uri作为您通过char发送的参数(WebBrowser.Navigate Method @ MSDN)。
答案 2 :(得分:3)
The error is line webBrowser1.Navigate('https://www.google.com/search?&ie=UTF-8&q= + (textBox1.Text)');
您使用的是单引号'而不是“
请以这种方式使用:
webBrowser1.Navigate("https://www.google.com/search?&ie=UTF-8&q=" + textBox1.Text);
只是因为你在C#中的知识''是Char,而“是for string
e.g char c = 'C'; and string s = "something";