千家信息网

ComponentOne使用技巧——从Winform穿越到W

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,概述WPF 和 Winform 是两个单独的平台,但二者又都是基于 .NET 4.0 以上版本开发的,所以很多.NET开发人员就开始研究如何在WPF中使用Winform。微软已经架设了两个开发平台的之
千家信息网最后更新 2026年11月02日ComponentOne使用技巧——从Winform穿越到W

概述

WPF 和 Winform 是两个单独的平台,但二者又都是基于 .NET 4.0 以上版本开发的,所以很多.NET开发人员就开始研究如何在WPF中使用Winform。微软已经架设了两个开发平台的之间的通信桥梁,目前为止二者相互转换使用已经相当成熟了,今天主要给大家讲讲如何在这两个平台下调用 ComponentOne 的控件。

本文主要用 FlexReport .NET报表控件,作为介质进行两个平台的链接

Step 1

首先,我们还是把两个平台的基本通信通道搭建起来,很简单,网上有很多步骤,总结起来主要分三步:

1.添加两个引用:WindowsFormsIntegration.dll(负责整合WPF和Windows)、System.Windows.Forms.

2.在 XAML文件中添加两个引用(粗体部分):

 < /Window>

解释一下,这段代码真正起作用的是这个引用WindowsFormsIntegration.dll,而这个引用System.Windows.Forms 指的是Winform里面的微软的原生态控件,所以在用到ComponentOne时,可以不引用它。

我们先看一个示例:通过微软原生态控件在WPF中使用Winform,代码如下:

                                

WindowsFormsHost其实是Winform在WPF的容器,所以Winform的控件显示都要在这个容器里面。

Setp2

上面我们说了,我们以FlexReport为介质进行通信,那我们需要准备的几个小步骤:

1.Winform下FlexReport的模板

2.相关引用

注意:这里面的引用是Winform的引用。同样,我们需要在xmal中引用:

xmlns:cc11="clr-namespace:C1.Win.FlexViewer;assembly=C1.Win.FlexViewer.4"

在布局中添加可供报表预览的控件

                                

Setp3

我们在后台加载报表

private C1FlexReport _report;    public Window1()    {        InitializeComponent();        _report = new C1FlexReport();        // load report definition from resources        Assembly asm = Assembly.GetExecutingAssembly();        using (Stream stream = asm.GetManifestResourceStream("WpfApp1.Resources.FlexCommonTasks.flxr"))            _report.Load(stream, "Chart2D");        // assign report to the preview pane        flexViewerPane.DocumentSource = null;        flexViewerPane.DocumentSource = _report;    }

注:切记,这里面的报表是Winform平台下的

到这一步,我们工作完成了一大半,还差最后一步点石成金的步骤。很多人以为在这就结束了,但是我们要考虑 ComponentOne License 授权的问题,如何把Winform 的授权在WPF下注册,其实很简单,因为 .NET 的license机制一样,我们只需用同样的方式去注册控件的license ,不过这里推荐手动注册,这很重要,因为一不小心,就会报lc.exe=-1的错误

这里我们都用到了

  • C1FlexViewerPane

  • C1FlexReport

所以我们在license文件中写如下注册信息

C1.Win.FlexReport.C1FlexReport, C1.Win.FlexReport.4 C1.Win.FlexViewer.C1FlexViewerPane, C1.Win.FlexViewer.4

至此,我们就大功告成了。

示例×××

本文中的示例源码,请点击此处下载

关于葡萄城:

赋能开发者!葡萄城公司成立于 1980 年,是全球领先的集开发工具、商业智能解决方案、管理系统设计工具于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。葡萄城的控件和软件产品在国内外屡获殊荣,在全球被数十万家企业、学校和政府机构广泛应用。


控件 两个 平台 开发 报表 葡萄 软件 全球 工具 步骤 示例 微软 服务 通信 介质 代码 企业 信息 原生态 容器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 高科技与互联网 狮子座互联网科技 互联网科技英文 嘟嘟瓜互联网科技 互联网科技的英文 上海喔噻互联网科技 互联网科技宣传片 须眉科技是互联网公司吗 中国科技互联网公司收入 温州喔噻互联网科技有限公司 阿里互联网科技公司 河南猎农互联网科技有限公司 移动互联网年度科技创新 华夏恒生科技与互联网科技 科技互联网海报 互联网企业科技类企业如何做账 广州互联网高科技取餐柜 安徽零酒互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 互联网科技股 碳银互联网科技有限公司 互联网科技美容 宁夏众和广鑫互联网科技有限公司 广州市恰铎互联网科技有限公司 洛阳昕诺飞互联网科技有限公司 国大互联网教育科技有限公司工作 互联网公司黑科技创始人 北京市互联网新科技 每日互联网科技新闻
0