我浏览器中的主要C#错误

时间:2012-07-04 00:14:51

标签: c# winforms visual-studio-2010

以下是我在调试时遇到的错误:

错误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行。

3 个答案:

答案 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";