需要C#Winforms自定义WebBrowser控件

时间:2011-04-28 16:10:09

标签: c# winforms browser controls

我最近一直在网上搜索一个现有的控件,它就像一个Web浏览器控件,具有我需要的一些特定功能。

我还没找到一个有它们的人,所以我想在这里留下一个问题,希望有人可以指出我是如何做到这一点的,或者甚至给我一些关于如何从头创建一个的提示,最终会成为解决方案。

我需要一个允许我预览网页的控件,同时它允许我以编程方式编辑它。我不需要直接将HTML或文本写入编辑器,但需要能够单击按钮,并将特定的HTML代码插入到文档中,然后刷新预览。

我还需要能够捕获控件上的单击事件。例如,我想单击控件上的特定位置并获取位于鼠标位置的HTML元素。关于事件,我还需要能够捕获拖放,而且在本地看来,浏览器控件似乎也不支持这一点。

即使我尝试了一些不同的控件,但没有一个具有这些功能,或者允许我添加它们。所以,我真的很感激,如果有人能指出我正确的方向,或者如果我错误地认为无法使用任何现有的.NET控件,那么我可能会更正。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

两个建议:

在浏览器的客户端,有一些DOM访问器可以让你通过鼠标位置获取HTML。查看此页面以获取此演示:

http://www.permadi.com/tutorial/cssGetElementUnderMouse/index.html

据推测,你可以在你的HTML中写出javascript,这些javascript中会有钩子来引发父UI代码中的事件,而这些事件又可以与浏览器进行交互。获取从DOM中捕获HTML元素名称并将其传递回UI的内容,该UI将其用作HTMLDocument中的游标将是一个良好的开端。

从那里你可以扩展该模型以支持诸如拖放或动态刷新之类的想法或者你有什么。

我不知道开箱即用的任何事情。我确实环顾四周,遇到了这个工具,它自由计费并提供源代码,但我不知道它的许可证模型是什么,所以联系作者

http://kompozer.net/features.php

答案 1 :(得分:0)

据我所知,没有这样的控制。此外,从头开始编写一个正确呈现所有现代HTML / CSS的将是一项重大任务。

即使像Microsoft Expression这样的产品也会以显示正在编辑的HTML的方式产生怪癖。

我担心你已经为你裁掉了工作。

答案 2 :(得分:0)