需要C#Winforms自定义WebBrowser控件

需要C#Winforms自定义WebBrowser控件,c#,winforms,browser,controls,C#,Winforms,Browser,Controls,我最近一直在网上搜索一个类似于web浏览器控件的现有控件,该控件具有我需要的一些特定功能 我还没有找到一个有它们的,所以我想在这里留下一个问题,希望有人能指出我是如何做到这一点的,或者甚至给我一些关于如何从头开始创建一个的提示,这将最终成为解决方案 我需要一个控件,允许我预览网页,同时它允许我编辑它的编程。我不需要将HTML或文本直接写入编辑器,但需要能够单击按钮,向文档插入特定的HTML代码,并刷新预览 我还需要能够捕获控件上的单击事件。例如,我想单击控件上的一个特定位置,并获取位于鼠标位置的

我最近一直在网上搜索一个类似于web浏览器控件的现有控件,该控件具有我需要的一些特定功能

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

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

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

尽管我尝试了一些不同的控件,但它们都没有这些功能,也不允许我添加这些功能。因此,如果有人能为我指出正确的方向,或者如果我错误地认为现有的.NET控件都无法实现这一点,我会非常感激


提前感谢您的帮助。

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

甚至像MicrosoftExpression这样的产品在显示正在编辑的HTML的方式上也有一些怪癖

恐怕你的工作已经安排好了。

两条建议:

在浏览器的客户端上有DOM访问器,可以让您通过鼠标位置获取HTML。请查看此页面以了解以下内容的演示:

假设您可以将javascript写入HTML中,HTML中会有钩子来引发父UI代码中的事件,而父UI代码又可以与浏览器交互。从DOM中获取捕获HTML元素名称的内容,并将其传递回UI,UI将其用作指向HTMLDocument的光标,这将是一个良好的开端

在此基础上,您可能会扩展该模型,以支持拖放、动态刷新等想法

我不知道有什么东西是现成的。我确实环顾四周,发现了这个工具,它本身是免费的,并且提供源代码,但我不知道它的许可证模式是什么,所以请与作者联系


查看

是的,实际上我已经考虑过。。。创建一个用CSS呈现HTML的控件确实不容易。但是有一些控件,它们似乎比浏览器控件做的更多,我怀疑它们是从头开始做的…@BlunT:嗯,有开源的渲染引擎。因此,您可以采取类似的措施,并对其进行修改以允许编辑。但我从或多或少考虑这一点,因为您需要使用原始的源代码而不是仅仅使用组件。MultType是我尝试过的控件之一,并使用它们提供的示例进行测试。我已经尝试过捕捉事件,但我做不到,但现在我又尝试了一次,似乎至少让一些部分工作起来。我会再深入一点,让你知道它是否能满足我的需要。您是否有使用此控件的经验,或者如果我有任何疑问,您是否知道我可以去哪里讨论?我以前从未使用过它。我希望它能起作用,因为它听起来可能非常有用。我在通过编程设置HTML的内容时遇到了一些问题,但我在单击页面时成功捕获了HTML控件的事件。这是一个开始!我没有回答这篇帖子,但kompozer似乎不是一个与C#一起使用的组件,而是一个独立的工具本身。我又开始搜索了,因为ModelText让我发疯了。我在尝试添加一些HTML时遇到了一些“意外”错误,这些错误并没有给我很多关于如何修复任何东西的信息。