本文所述部署 DotNetTextBox 的版本为:免费开源版 3.4.1,仅供参考!
引用dll:
ActiproSoftware.CodeHighlighter.Net20.dllActiproSoftware.Shared.Net20.dll
CodeHighlighterTest.dll
DotNetTextBox.dll
EnvDTE.dll
Interop.Word.dll
Microsoft.Vbe.Interop.dll
Office.dll
Word_dntb.dll
调用方法:
1.直接在ASPX页面引用控件的话,请将 DotNetTextBox.dll 复制到页面所在项目的 bin 目录下,并在web.config 的 pages -> controls 节点加:
<add tagPrefix="DNTB" namespace="DotNetTextBox" assembly="DotNetTextBox"/>
在需要加入控件的地方添加:
<DNTB:WebEditor ID="WebEditor1" runat="server" systemFolder="system_dntb/" Skin="skin/XP/" PathType="AbsoluteRoot" />
上面设置了我默认的属性。
2.将默认属性写在 appSettings 里,可以不做。
3.添加控件到VS的工具箱,可以不做。
4.将 system_dntb 目录拷贝到所在项目里。
5.将控件 bin 目录里的 ActiproSoftware.CodeHighlighter.Net20.dll、ActiproSoftware.Shared.Net20.dll、CodeHighlighterTest.dll 拷贝到项目 BIN 目录里(如果不需要代码高亮功能,删除 system_dntb 目录里的 PasteCode.aspx 和 PasteCode.aspx.cs 页面就可以不拷贝这三个 DLL 文件)
6.web.config 中设置 codeHighlighter
configSections中加入:
<section name="codeHighlighter" requirePermission="false" type="ActiproSoftware.CodeHighlighter.CodeHighlighterConfigurationSectionHandler, ActiproSoftware.CodeHighlighter.Net20"/>
加入以下代码为二级节点:
<codeHighlighter>
<cache languageTimeout="3"/>
<keywordLinking enabled="true" target="_blank" defaultKeywordCollectionKey="ActiproKeywords">
<keywordCollection key="ActiproKeywords">
<explicitKeyword tokenKey="IdentifierToken" patternValue="Actipro" url="http://www.actiprosoftware.com" caseSensitive="false"/>
<explicitKeyword tokenKey="IdentifierToken" patternValue="CodeHighlighter" url="http://www.codehighlighter.com" caseSensitive="false"/>
</keywordCollection>
</keywordLinking>
<languages>
<language key="Assembly" definitionPath="~/system_dntb/Lexers/ActiproSoftware.Assembly.xml"/>
<language key="BatchFile" definitionPath="~/system_dntb/Lexers/ActiproSoftware.BatchFile.xml"/>
<language key="C#" definitionPath="~/system_dntb/Lexers/ActiproSoftware.CSharp.xml"/>
<language key="CSS" definitionPath="~/system_dntb/Lexers/ActiproSoftware.CSS.xml"/>
<language key="HTML" definitionPath="~/system_dntb/Lexers/ActiproSoftware.HTML.xml"/>
<language key="INIFile" definitionPath="~/system_dntb/Lexers/ActiproSoftware.INIFile.xml"/>
<language key="Java" definitionPath="~/system_dntb/Lexers/ActiproSoftware.Java.xml"/>
<language key="JScript" definitionPath="~/system_dntb/Lexers/ActiproSoftware.JScript.xml"/>
<language key="Lua" definitionPath="~/system_dntb/Lexers/ActiproSoftware.Lua.xml"/>
<language key="MSIL" definitionPath="~/system_dntb/Lexers/ActiproSoftware.MSIL.xml"/>
<language key="Pascal" definitionPath="~/system_dntb/Lexers/ActiproSoftware.Pascal.xml"/>
<language key="Perl" definitionPath="~/system_dntb/Lexers/ActiproSoftware.Perl.xml"/>
<language key="PHP" definitionPath="~/system_dntb/Lexers/ActiproSoftware.PHP.xml"/>
<language key="PowerShell" definitionPath="~/system_dntb/Lexers/ActiproSoftware.PowerShell.xml"/>
<language key="Python" definitionPath="~/system_dntb/Lexers/ActiproSoftware.Python.xml"/>
<language key="SQL" definitionPath="~/system_dntb/Lexers/ActiproSoftware.SQL.xml"/>
<language key="VB.NET" definitionPath="~/system_dntb/Lexers/ActiproSoftware.VBDotNet.xml"/>
<language key="VBScript" definitionPath="~/system_dntb/Lexers/ActiproSoftware.VBScript.xml"/>
<language key="XAML" definitionPath="~/system_dntb/Lexers/ActiproSoftware.XAML.xml"/>
<language key="XML" definitionPath="~/system_dntb/Lexers/ActiproSoftware.XML.xml"/>
</languages>
<lineNumberMargin foreColor="Teal" paddingCharacter=" " visible="true"/>
<outlining enabled="true" imagesPath="~/system_dntb/OutliningIndicators/"/>
<spacesInTabs count="4"/>
</codeHighlighter>
7.在使用的页面需要设置page: ValidateRequest="false" EnableEventValidation="false"
8.搜索 id 为 OutliningEnabledCheckBox 的单选框,更改默认 Checked="true",显示行号也可以改为选中,不过这样不方便读者复制代码使用。
另外提醒一点,DotNetTextBox 在 UpdatePanel 中使用时,回传后会丢失内容,使用时注意。
下载最新的免费CodeHighlighter组件 http://www.CodeHighlighter.com
1。确保web.config中的languages节点的.xml文件路径正确。
2。可以在insertCode.aspx更改编辑的默认设置,如checkbox的check等。(或在项目中搜索相关代码)
DotNetTextBox 已集成CodeHighlighter,我的修改如下:

SyntaxHighlighter is here to help a developer/coder to post code snippets online with ease and have it look pretty. It's 100% Java Script based and it doesn't care what you have on your server.


我们在vs2005里面新建个web site吧,把CuteEditor.dll(主控件)、CuteEditor.lic(许可证)、CuteEditor.ImageEditor.dll(因为5.0增加了个EditorImage的功能)、NetSpell.SpellChecker.dll(拷这个的原因是默认打开拼写检查)这几个文件拷贝到web site的bin目录下,刷新bin目录(不像vs2003需要引用dll),同时我们也要把解压缩后的CuteSoft_Client目录全部拷贝到应用程序的根目录下。然后把CuteEditor添加到工具面板.我们在工具面板里面右键选择"选择项",在出来的对话框里面选择"游览",找到CuteEditor.dll,一路确定就可以了。

上面的只是个最简单的安装,还有比如控制CueEditor的显示,已经安全性和那个什么上传的啊,还有控制用户上传的目录啊,或者给每个用户建个他们自己的图片目录啊,还必须要另外设置,这些暂时先略过吧,您可以自己看一下说明进行设置,这里不多说了。我们现在要开始要给CuteEditor增加高亮代码显示功能,俺这里使用的是CodeHighlighter控件,您可以到http://www.codehighlighter.com下载最新版,最新版同时支持.net1和.net2,因为使用的是vs2005,俺就使用了最新版,现在我们先来给CuteEditor增加一个按钮和打开插入高亮代码的页面代码。
CuteEditor.aspx代码
http://cutesoft.net
http://www.cuteeditor.cn/
下载最新版CuteEditor
发布网站后如果提示:
无法为类型 CuteEditor.Editor 授予有效的许可证
则搜索此句,可找到解决办法:
下载CuteEditor.lic覆盖即可

习惯于 IE6/7 页面设计的朋友都知道,下面的代码实现了在宽频显示器下所有页面内容居中显示,文字在内部靠左显示:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><div style="width: 100%; text-align: center;">
<div style="width: 1000px; text-align: left;">
文字
</div>
</div>
而在支持 web 标准的浏览器中显示却有可能居中无效,这时只要在内部的 div 的 style 加上 margin:auto 就行了.
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><div style="width: 100%; text-align: center;">
<div style="width: 1000px; text-align: left; margin: auto;">
文字
</div>
</div>
效果:
文字
文字
文字
文字
<INPUT onfocus="oRng=this.createTextRange();oRng.collapse(true);oRng.moveStart('character',3);oRng.select()" value=abcdefg type=text name=text1>
当焦点移至文本框时光标定位在位置3。
如果要直接定位在文本末尾,把上面的数字 3 改为 this.value.length 即可。

代码:
function check(){
s.disabled = (t1.value == '' || t2.value == '' || t3.value == '')
}
</script>
<input name="t1" onpropertychange="check();">
<input name="t2" onpropertychange="check();">
<input name="t3" onpropertychange="check();">
<input type="submit" name="s" disabled>
效果:

代码:
style="width: 18px; border: 0px solid red;">
<select name="r00" style="margin-left: -101px; width: 118px; background-color: #FFEEEE;"
onchange="document.all.re_name.value=this.value;">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</span>
说明:
该代码兼容性非常差,在XHTML文档中或在非IE浏览下浏览均不能达到预期效果,原因可能是它们的 select 元素的 z-index 太高,并且 css 定位方式不同,部署于应用还需改进代码。

方法:
write,向HTML动态写入内容
writeln,多加一个换行
open,与window.open类似,不建议用
close,当向新打开的文档对象中写完所有的内容后,一定要调用该方法关闭文档流
clear,用于清除文档中的所有内容,建议用document.write("");document.close();这两条语句来实现同样的功能。
getElementById,返回id的对象
getElementByName,返回name的对象组(注意是数组)
getElementByTagName,返回标签名的对象组
createElement,产生一个代表某个HTML元素的对象,随后再其它方法将这个对象插入到文档中。
createStyleSheet,为当前HTML产生一个样式表或增加一条样式规则。
属性:
document.cookie
