轻量、强大的代码编辑器控件-WinForm完美版

前段时间做个小项目需要用到一个代码编辑器控件,但网上搜了半天,居然没发现一个完全满意的编辑器。现有的一些编辑器有:

FastedTextBox

优点:1.  轻量。

2. 样式美观。

3. DEMO完整,文档丰富。

缺点:1. 不支持中文/中文字体显示难看

2. 代码折叠只能支持整行。

ICSharpCode.AvalonEdit

优点:功能强大,几乎完美,非常接近 VS

缺点:1. 使用 WPF 开发。

2. 在 WinForm 使用不大稳定,比如不能同时开两个窗口,图形错位。

3. 内存多。

QWhale.Editor

优点:1. 功能齐全。

2. DEMO完整。

缺点:1. 收费且无源码。

2. 界面难看。

Scintilla.Net

优点:1. 功能齐全。

缺点:使用 C++ 开发,难以控制。

以上编辑器没有一个完整支持以下特性:

1. 支持语法高亮/折叠/括号匹配/行号显示/显示特殊字符/智能TAB缩进。(所有编辑器都支持此功能)

2. 支持自动换行。(ICSharpCode.TextBox不支持)

3. 支持竖行选择。(只有 ICSharpCode.AvalonEdit 支持)

4. 完美支持中文输入法。(只有 ICSharpCode.AvalonEdit 支持)

5. 高性能。编辑 100000 行代码 和 1 行 100000 列代码无压力。滚动时不发生延时。

6. 轻量、启动速度快,依赖 DLL 少。

7. 支持书签、错误波浪线、单词拼写、智能提示。

8. API 和 文档丰富。

9. 支持滚动条缩略图。

10. 兼容更多系统。

时间: 2024-10-17 16:36:01

轻量、强大的代码编辑器控件-WinForm完美版的相关文章

强大软件防盗版控件.NET Reactor

当.Net编译器编译你的c#或vb.net程序时, 程序员的程序并不会编译为原生的机器语言,而是编译成为了通用中间语言指令(CIL). CIL是介于源代码和本地代码的中间的语言,当你的程序运行,不是直接执行的机器代码,而是由.NET框架解释执行. 正因为如此,你的应用程序或库的源代码,可以很容易地复制. CIL很容易被反编译,代码混淆如利用NET的反射,可以容易的将CIL反编译为c#或vb.net源代码! 显然,这种分发给最终用户的商业软件,很容易被你的竞争对手和不法分子所利用.微软公司提供一个

强大的PDF转换控件ActivePDF WebGrabber

ActivePDF WebGrabber控件是一款功能强大的PDF转换控件,可以把HTML或者URL转换为PDF,利用强健的页面布局控件,全面支持Flash转换,产生安全的.可打印的PDF文件. 具体功能: 动态HTML到PDF转换 无论是来自任意源的HTML文档,无论是CGI脚本文件,Asp.Jsp或者无格式HTML文件,activePDF WebGrabber都可以进行PDF转换,没有任何区别.通过activePDF WebGrabber,您可以加载URL地址.本地磁盘甚至是内存中的HTML

.NET代码混淆控件Dotfuscator检测篡改

.NET混淆器Dotfuscator提供了强大的篡改防御和提示功能,可以有效地检测篡改,注入事实篡改防御,以及自动化事故管理和响应.本文主要介绍如何利用.NET代码混淆器Dotfuscator检测应用程序的篡改. Dotfuscator包含了一个篡改检测工具,它位于Dotfuscator文件夹中(C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.4\TamperTester.exe). 测试篡改步骤如

swift 字符转为类,代码创建控件

在使用类之前要先获得 命名空间 通过json来获取 字符型的类名 然后创建类对象,这时候就要用到字符转类 // 从info字典中获取到 命名空间 转为字符型 let NS = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"] as! string let clss:AnyClass? = NSClassFormString(NS +"."+字符类名) let Vcla = clas as! UIV

功能强大的商业图表控件Essential Chart for ASP.NET MVC

Essential Chart for ASP.NET MVC是一款功能强大的商业图表控件,提供了创新的数据对象模型可以很容易地与多种数据源进行绑定,提供了35种图表类型,支持2D和3D显示,多轴显示.实时数据显示.导出为图片以及打印和打印预览,软件开发人员可以使用该控件开发出专业的商业应用程序. 具体功能: 支持无限制数据序列和无限制数据点 支持多种坐标轴样式 支持自定义轴标签和显示方向 支持轴反转和颠倒轴 支持自定义数据点 支持图表放大和滚动以及panning 控件提供了交互式地十字光标,可

IOS Ui控件 修改位置和尺寸,代码添加控件

所有的UI控件最终都继承自UIView,UI控件的公共属性都定义在UIView中, UIView的常见属性 UIView *superview; 获得自己的父控件对象 NSArray *subviews; 获得自己的所有子控件对象 NSInteger tag; 控件的ID(标识),父控件可以通过tag来找到对应的子控件 CGAffineTransform transform; 控件的形变属性(可以设置旋转角度.比例缩放.平移等属性) CGRect frame; 控件所在矩形框在父控件中的位置和尺

swift学习笔记:字符转为类,代码创建控件

在swift编程(http://www.maiziedu.com/course/ios/16-161/)中,我们都会遇到这样两个问题,如何把字符转为类和代码创建控件的方法,下面就具体讲解这两个知识点 在使用类之前要先获得 命名空间 通过json来获取 字符型的类名 然后创建类对象,这时候就要用到字符转类 // 从info字典中获取到 命名空间 转为字符型 let NS = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"

Swift编程中字符转为类,代码创建控件详解

在swift编程(http://www.maiziedu.com/course/ios/16-161/)中,我们都会遇到这样两个问题,如何把字符转为类和代码创建控件的方法,下面就具体讲解这两个知识点 在使用类之前要先获得 命名空间 通过json来获取 字符型的类名 然后创建类对象,这时候就要用到字符转类 // 从info字典中获取到 命名空间 转为字符型 let NS = NSBundle.mainBundle().infoDictionary!["CFBundleExecutable"

Qt在mainwindow下代码添加控件不能显示的问题

以前在dialog或者widget下代码添加控件能显示,但是今天发现在mainwindow下居然不能显示,后来查了资料才知道,需要先定义一个widget,具体代码如下:    QWidget *center = new QWidget(this);    setCentralWidget(center);     penColorComboBox = new QComboBox;     createColorComboBox(penColorComboBox);     penColorLab