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