列出winform中的回复

时间:2010-05-19 14:33:15

标签: c# .net winforms webbrowser-control

在我的C#应用​​程序中,我从服务器获取一个xml,其中包含一些回复,例如在论坛帖子中(包含作者,时间,正文,标题等等)。

当我得到这个xml时,我创建了一个新表单,我想在其中显示这些回复,还有一个带有“添加回复”按钮的小文本框。我还想在表单中显示的回复列表中的某些编辑按钮或者我自己的回复中。

我想到显示回复的最简单方法是在表单中放置一个Web浏览器控件,在xml的字符串中生成一个完整的html页面,并将其放入该Web浏览器控件中。在它下面,我可以将文本框与添加回复按钮放在一起。 一切都还好,除了我不知道如何在我自己的回复中实现编辑功能(我的意思是我可以在那里添加链接......但链接到什么)

我想知道是否有办法从网页浏览器控件获取该编辑事件(我的猜测是我不能)或另一种(可能是简单/简单)的想法,使用其他方式在winform中显示回复对照

1 个答案:

答案 0 :(得分:2)

是的,这是可能的,您想要为文档打开“设计模式”。添加对Microsoft.mshtml的引用。启动一个新的Windows窗体项目并在窗体上放置一个WB和一个按钮。使代码看起来类似于:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        webBrowser1.DocumentText = "<html><body><textarea rows='15' cols='92' name='post-text' id='wmd-input'></textarea></body></html>";
        webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
        button1.Click += button1_Click;
    }

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
        mshtml.IHTMLDocument2 doc = webBrowser1.ActiveXInstance as mshtml.IHTMLDocument2;
        doc.designMode = "On";
    }

    private void button1_Click(object sender, EventArgs e) {
        var html = webBrowser1.Document.Body.All["post-text"].InnerHtml;
        // do something with that
        //...
    }
}