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;

次の 2 つのエラー メッセージは、最初のメッセージの直接の結果です。ここでは、エラー メッセージが非常に明確です。エラー メッセージの意味を検索して、問題の根本原因を推測することをお勧めします。

于 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);

これは、文字を介して送信したパラメータ ( WebBrowser.Navigate Method @ MSDN ) として Navigate メソッドが String または Uri を想定しているためです。

于 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 に答える