Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# webbrowser控件加载时缺少内容_C#_.net_Events_Webbrowser Control - Fatal编程技术网

C# webbrowser控件加载时缺少内容

C# webbrowser控件加载时缺少内容,c#,.net,events,webbrowser-control,C#,.net,Events,Webbrowser Control,我有一个WebBrowser控件,它用MarkDig显示Markdown。 我正在从数据库加载降价内容,并将其加载到webbrowser控制器中。 同时,它旁边有一个文本框,内容与webbrowser控制器相同,文本框上有一个事件,内容发生了变化,因此当文本框中的内容发生变化时,它会将新文本插入webbrowser控制器,并显示为标记 我的问题是,当应用程序加载并且webbrowser控制器获取内容时,它不会显示在webbrowser中。但内容显示在文本框中。在我更改文本框中的某些内容之前,不会

我有一个WebBrowser控件,它用MarkDig显示Markdown。 我正在从数据库加载降价内容,并将其加载到webbrowser控制器中。 同时,它旁边有一个文本框,内容与webbrowser控制器相同,文本框上有一个事件,内容发生了变化,因此当文本框中的内容发生变化时,它会将新文本插入webbrowser控制器,并显示为标记

我的问题是,当应用程序加载并且webbrowser控制器获取内容时,它不会显示在webbrowser中。但内容显示在文本框中。在我更改文本框中的某些内容之前,不会显示webbrowser中的内容

private void GetKBContent()
        {
            OpenConection();
            MySqlCommand cmd = new MySqlCommand("SELECT * FROM Knowlagebase WHERE id = 1", conn);
            // cmd.Parameters.AddWithValue("@email", email_);
            // cmd.Parameters.AddWithValue("@password", password_);
            MySqlDataReader rdr = cmd.ExecuteReader();

            if (rdr.HasRows)
            {
                while (rdr.Read())
                {
                    string db_markdown = rdr["Markdown"].ToString();
                    string DecryptedKB_markdown = DecryptKBContent(db_markdown);

                    textBox_KB_markdown.Text = DecryptedKB_markdown;

                    string html_Markdown = Markdig.Markdown.ToHtml(DecryptedKB_markdown);
                    wbMarkDown.DocumentText = html_Markdown;
                }
            }
            else
            {
                MessageBox.Show("Content was not found", "Information");
            }

            CloseConection();
        }
正常加载:

这是当我在顶部的文本“一个h1标题”后添加了一个空格时

这是我的TextChanged事件,它将文本框中的文本加载到webbrowser中。如果我不评论这行,它可以正常工作并加载

private void textBox_KB_markdown_TextChanged(object sender, EventArgs e)
        {
            wbMarkDown.DocumentText = Markdig.Markdown.ToHtml(textBox_KB_markdown.Text);
        }
这就是我将内容从数据库加载到webbrowser控制器和文本框的方式

private void GetKBContent()
        {
            OpenConection();
            MySqlCommand cmd = new MySqlCommand("SELECT * FROM Knowlagebase WHERE id = 1", conn);
            // cmd.Parameters.AddWithValue("@email", email_);
            // cmd.Parameters.AddWithValue("@password", password_);
            MySqlDataReader rdr = cmd.ExecuteReader();

            if (rdr.HasRows)
            {
                while (rdr.Read())
                {
                    string db_markdown = rdr["Markdown"].ToString();
                    string DecryptedKB_markdown = DecryptKBContent(db_markdown);

                    textBox_KB_markdown.Text = DecryptedKB_markdown;

                    string html_Markdown = Markdig.Markdown.ToHtml(DecryptedKB_markdown);
                    wbMarkDown.DocumentText = html_Markdown;
                }
            }
            else
            {
                MessageBox.Show("Content was not found", "Information");
            }

            CloseConection();
        }

所以我的问题是,如何解决这个问题,所以webbrowser控制器在加载时显示内容,而不必先编辑?我做错了什么?

我通过将
TextChanged
改为
KeyUp
解决了这个问题

private void textBox_KB_markdown_KeyUp(object sender, KeyEventArgs e)
        {
            wbMarkDown.DocumentText = Markdig.Markdown.ToHtml(textBox_KB_markdown.Text);
        }