需要 C# Winforms 自定义 WebBrowser 控件

     2023-02-24     30

关键词:

【中文标题】需要 C# Winforms 自定义 WebBrowser 控件【英文标题】:C# Winforms Custom WebBrowser Control Needed 【发布时间】:2011-04-28 16:10:09 【问题描述】:

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

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

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

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

尽管我尝试了一些不同的控件,但它们都没有这些功能,或者允许我添加它们。所以,如果有人能指出我正确的方向,或者如果我错误地假设无法使用任何现有的 .NET 控件来完成,我将不胜感激。

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

两个建议:

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

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

大概您可以将 javascript 写入您的 HTML 中,其中包含挂钩以在您的父 UI 代码中引发事件,进而与浏览器交互。从 DOM 中获取 HTML 元素名称并将其传递回 UI,UI 将其用作 HTMLDocument 中的光标,这将是一个好的开始。

您可以从那里扩展该模型以支持诸如拖放或动态刷新之类的想法或您拥有的东西。

我不知道有什么开箱即用的方法。我确实环顾四周,发现了这个工具,它自称为免费并提供源代码,但我不知道它的许可模式是什么,所以联系作者

http://kompozer.net/features.php

【讨论】:

我没能回答这个帖子,但是 kompozer 似乎不是一个与 C# 一起使用的组件,而是一个独立的工具本身。我又开始搜索了,因为 ModelText 让我发疯了。我在尝试添加一些 HTML 时遇到了一些“意外”错误,这些错误并没有为我提供有关如何修复任何问题的大量信息。【参考方案2】:

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

即使是像 Microsoft Expression 这样的产品,在显示正在编辑的 HTML 的方式上也往往有一些怪癖。

恐怕你的工作已经完成了。

【讨论】:

是的,实际上我已经考虑过......创建一个使用 CSS 呈现 HTML 的控件确实不容易。但是那里有一些控件,它们似乎比浏览器控件做更多的事情,我怀疑它们是从头开始的...... @BlunT:嗯,有开源渲染引擎。因此,您可以采用类似的方法并对其进行修改以允许编辑。但我或多或少地从头开始考虑这一点,因为您需要使用原始源代码,而不仅仅是使用组件。【参考方案3】:

查看http://www.modeltext.com/html/

【讨论】:

ModelText 是我尝试过的控件之一,并使用他们提供的示例进行了测试。我已经尝试过捕捉事件,但我不能,但现在我又尝试了一次,似乎至少可以让一些部分工作。我会再深入一点,让你知道它是否能够满足我的所有需求。你有这个控件的经验吗,或者如果我有任何疑问可以去哪里讨论? 我以前从未使用过它。我希望它能奏效,因为它听起来很有用。 我在以编程方式设置 HTML 的内容时遇到了一些问题,但是当我单击页面时,我设法捕获了 HTML 控件的事件。这是一个开始!

WinForms C#中自定义对象类型的跨进程拖放

】WinFormsC#中自定义对象类型的跨进程拖放【英文标题】:Cross-ProcessDragandDropofcustomobjecttypeinWinFormsC#【发布时间】:2011-01-0713:14:54【问题描述】:Thisquestion与我感兴趣的内容接近,但并不完全。我有一个用C#编写的.NETWinForms应用程... 查看详情

如何使窗口可拖动(C# Winforms)?

】如何使窗口可拖动(C#Winforms)?【英文标题】:HowtomakeawindowDraggable(C#Winforms)?【发布时间】:2011-04-2901:02:34【问题描述】:我有形式。我已启用表单的透明度,并删除了它的标题栏和边框。在里面,我创建了一个自定义UI,它... 查看详情

chromium - 在初始页面加载 c# 时发送自定义标题信息

...romium的菜鸟,真的需要一些帮助。我有一个带有CEF窗口的winforms应用程序。K,目前还没有问题。我 查看详情

Winforms:在设计器中创建对象并对其进行自定义

】Winforms:在设计器中创建对象并对其进行自定义【英文标题】:Winforms:Createobjectindesignerandcustomizeit【发布时间】:2016-05-1002:40:22【问题描述】:我正在Winforms(C#)中创建一个新组件。该组件获取一些属性来修改行为。用户应该在... 查看详情

添加列的自定义 WinForms DataGridView 问题

】添加列的自定义WinFormsDataGridView问题【英文标题】:CustomWinFormsDataGridViewissueswithaddingcolumns【发布时间】:2010-11-2915:22:18【问题描述】:我正在创建一个继承内置DataGridView控件的自定义winformsdatagridview控件。我的Columns属性有问题... 查看详情

Telerik winforms 主题颜色自定义

】Telerikwinforms主题颜色自定义【英文标题】:Telerikwinformsthemecolorcustomization【发布时间】:2015-10-0410:33:32【问题描述】:我在我的应用程序中使用TelerikWinforms。我正在寻找最接近客户品牌要求的主题颜色组合。我选择了“Office2010... 查看详情

C# Winforms 选项卡控制选项卡宽度错误

】C#Winforms选项卡控制选项卡宽度错误【英文标题】:C#WinFormstabControltabwidtherror【发布时间】:2011-05-0308:16:48【问题描述】:我有自定义选项卡控件,其中OnPaint方法被覆盖。然后出现奇怪的标签增长。标签越来越大(填充越来越... 查看详情

C# winforms:将可空类型绑定到其他属性(不是文本)时出错

】C#winforms:将可空类型绑定到其他属性(不是文本)时出错【英文标题】:C#winforms:Errorwhenbindingnullabletypetootherproperty(notText)【发布时间】:2013-11-2307:06:08【问题描述】:我制作了一个自定义文本框,它将(可为空的)十进制值... 查看详情

WinForms 文本框的自定义插入符号

】WinForms文本框的自定义插入符号【英文标题】:CustomCaretforWinFormsTextBox【发布时间】:2010-10-1105:30:36【问题描述】:我正在WinForms.Net2.0应用程序中开发类似超级终端的自定义应用程序。我在面板中有一个多行文本框,您可以在... 查看详情

自定义 Winforms 设计器控件同时缩放和平移控件

】自定义Winforms设计器控件同时缩放和平移控件【英文标题】:ZoomandPancontrolssimultaneouslyforacustomWinformsdesignercontrol【发布时间】:2021-10-1514:59:00【问题描述】:我正在尝试在winforms中创建一个“设计师”。这将向用户呈现一个所见... 查看详情

如何使用winforms创建自定义热键

】如何使用winforms创建自定义热键【英文标题】:howdoIcreatecustomhotkeyusingwinforms【发布时间】:2017-07-2818:08:53【问题描述】:我被要求在有两个组合框的地方创建winform应用程序。第一个框包含Ctrl+Alt、Ctrl+Shift和Alt+Shift等选项。第... 查看详情

c#自定义集合

...nbsp;   根据笔者经验,一个好的C#"自定义集合"需要满足以下需求:&nb 查看详情

c#自定义集合

...nbsp;   根据笔者经验,一个好的C#"自定义集合"需要满足以下需求:  1:可以使用foreach方便的遍历集合元 查看详情

自定义 WinForms ErrorProvider 以在控件条目中显示其图标

】自定义WinFormsErrorProvider以在控件条目中显示其图标【英文标题】:CustomizingWinFormsErrorProvidertodisplayitsiconinsidecontrol\'sentry【发布时间】:2010-11-1103:52:07【问题描述】:我有一些自定义/用户控件,在大多数情况下都有标签和条目... 查看详情

针对 SQL Server 的自定义 winforms 身份验证:如何处理密码过期?

】针对SQLServer的自定义winforms身份验证:如何处理密码过期?【英文标题】:CustomwinformsauthenticationagainstSQLServer:howtohandlepasswordexpiration?【发布时间】:2011-12-1414:29:46【问题描述】:我们有一个基于Winforms和EntityFramework4.2(代码优... 查看详情

使用自定义 WinForms 控件,我可以更改嵌套控件停靠在里面的矩形吗?

】使用自定义WinForms控件,我可以更改嵌套控件停靠在里面的矩形吗?【英文标题】:WithacustomWinFormscontrol,canIchangetherectanglethatnestedcontrolsdockinside?【发布时间】:2016-02-1719:01:57【问题描述】:我正在尝试创建一个行为类似于GroupBo... 查看详情

BackgroundWorker,我怎样才能显示真正的进步? C# Winforms

】BackgroundWorker,我怎样才能显示真正的进步?C#Winforms【英文标题】:BackgroundWorker,howCouldishowrealprogress?C#Winforms【发布时间】:2021-11-1615:50:28【问题描述】:我创建了使用AES加密/解密文件的应用程序,但是当我需要处理大文件时... 查看详情

如何在 .NET Winforms 中显示自定义错误或警告消息框?

】如何在.NETWinforms中显示自定义错误或警告消息框?【英文标题】:Howtoshowacustomerrororwarningmessageboxin.NETWinforms?【发布时间】:2011-01-0717:49:17【问题描述】:如何显示带有“叮!”的消息框声音和一个红色的“关闭”按钮?这就... 查看详情