【发布时间】:2021-07-14 10:33:35
【问题描述】:
我有一个使用 MarkDig 显示 Markdown 的 WebBrowser-Control。 我正在从我的数据库中加载降价内容,并将其加载到 webbrowser-controller 中。 同时,我旁边有一个文本框,内容和webbrowser-controller一样,文本框上有一个TextChanged事件,所以当文本框中的内容发生变化时,它会将新文本插入到webbrowser-controller,并将其显示为markdown。
我的问题是,当应用程序加载并且 webbrowser-controller 正在获取内容时,它不会显示在 webbrowser 中。但内容显示在文本框中。在我更改文本框中的内容之前,不会显示网络浏览器中的内容。
这是我在顶部的文本“An h1 header”之后添加了一个空格
这是我的 TextChanged 事件,它将文本框中的文本加载到网络浏览器中。如果我注释掉这一行,它可以正常工作并加载。
private void textBox_KB_markdown_TextChanged(object sender, EventArgs e)
{
wbMarkDown.DocumentText = Markdig.Markdown.ToHtml(textBox_KB_markdown.Text);
}
这就是我将数据库中的内容加载到网络浏览器控制器和文本框的方式。
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-controller 在加载时显示内容,而不必先编辑?我做错了什么?
【问题讨论】:
标签: c# .net events webbrowser-control