0

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

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

4

3 回答 3

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;

接下来的两个错误消息是第一个错误消息的直接结果。此处的错误消息非常清楚,您最好搜索它们的含义并尝试推断问题的根本原因。

于 2012-07-04T00:19:14.400 回答
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 )。

于 2012-07-04T00:19:36.570 回答
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,而 "" 用于字符串

e.g char c = 'C'; and string s = "something";
于 2012-07-04T00:19:45.943 回答