在 windows 聊天应用程序中动态添加网络浏览器控件:
dynamically add webbrowser control in windows chat application:
我正在开发 windows 表单聊天应用程序,我正在 richtextbox 中编写消息,但是当我单击发送按钮时,每条消息都显示在网络浏览器控件中。 .我想为单个消息动态添加网络浏览器控件是 send.i 我正在使用以下代码:
namespace WindowsFormsApplication1
{
[ComVisible(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// this.w1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(w1_DocumentCompleted);
}
WebBrowser w1 = new WebBrowser();
private void button1_Click(object sender, EventArgs e)
{
this.Controls.Add(w1);
HtmlElement div = w1.Document.GetElementById("abc");
div.InnerHtml = richTextBox1.Text;
}
private void Form1_Load(object sender, EventArgs e)
{
w1.Navigate(Path.Combine(Environment.CurrentDirectory, "HTMLPageForScripting.htm"));
}
}
}
这是您要的案例:
- 在表单中添加一个
Panel
以放入浏览器并将其自动滚动 属性 设置为 true;
- 在 button1
Click
事件中,创建浏览器,设置其宽度和高度,并导航到您想要的文档。
- 在 button1 中单击事件订阅
DocumentCompleted
事件并在那里添加内容。我们确实在此处添加,因为我们应该确保包含 <div id="abc"></div>
的所有内容都已加载。
代码如下:
private void button1_Click(object sender, EventArgs e)
{
var browser = new WebBrowser();
browser.Height = 100;
browser.Dock = DockStyle.Top;
browser.Navigate(@"D:\test.html");
browser.DocumentCompleted += browser_DocumentCompleted;
this.panel1.Controls.Add(browser);
//Just do it to put it at the end of list and scroll to it
browser.BringToFront();
this.panel1.ScrollControlIntoView(browser);
}
void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var browser = (WebBrowser)sender;
HtmlElement div = browser.Document.GetElementById("abc");
div.InnerHtml = richTextBox1.Text;
}
我正在开发 windows 表单聊天应用程序,我正在 richtextbox 中编写消息,但是当我单击发送按钮时,每条消息都显示在网络浏览器控件中。 .我想为单个消息动态添加网络浏览器控件是 send.i 我正在使用以下代码:
namespace WindowsFormsApplication1
{
[ComVisible(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// this.w1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(w1_DocumentCompleted);
}
WebBrowser w1 = new WebBrowser();
private void button1_Click(object sender, EventArgs e)
{
this.Controls.Add(w1);
HtmlElement div = w1.Document.GetElementById("abc");
div.InnerHtml = richTextBox1.Text;
}
private void Form1_Load(object sender, EventArgs e)
{
w1.Navigate(Path.Combine(Environment.CurrentDirectory, "HTMLPageForScripting.htm"));
}
}
}
这是您要的案例:
- 在表单中添加一个
Panel
以放入浏览器并将其自动滚动 属性 设置为 true; - 在 button1
Click
事件中,创建浏览器,设置其宽度和高度,并导航到您想要的文档。 - 在 button1 中单击事件订阅
DocumentCompleted
事件并在那里添加内容。我们确实在此处添加,因为我们应该确保包含<div id="abc"></div>
的所有内容都已加载。
代码如下:
private void button1_Click(object sender, EventArgs e)
{
var browser = new WebBrowser();
browser.Height = 100;
browser.Dock = DockStyle.Top;
browser.Navigate(@"D:\test.html");
browser.DocumentCompleted += browser_DocumentCompleted;
this.panel1.Controls.Add(browser);
//Just do it to put it at the end of list and scroll to it
browser.BringToFront();
this.panel1.ScrollControlIntoView(browser);
}
void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var browser = (WebBrowser)sender;
HtmlElement div = browser.Document.GetElementById("abc");
div.InnerHtml = richTextBox1.Text;
}