[转帖]FreeTextBox添加自定义按钮
[转帖]FreeTextBox添加自定义按钮
那么究竟怎么做才可以把我们需要的按钮制作成像其他按钮一样安静的放在那里,等待我们 我的初步想法是,FreeTextBox应该支持我们这样做,所以它可能已经给我们留了一些属性或 1) 制作我们自己的按钮 2) 把我们的按钮添加到FreeTextBox的Button集合当中 那么就让我们去验证一下我们的想法吧。这个验证的过程,就是我们认知和熟悉FreeTextBox的一 1) ToolbarLayout String 2) Procedurally 3) Code (Page_Load or Code Behind) 这里我只简单列举一下,具体的可参考readme文本文件 接下来的事情,就让我们动手制作我们的按钮吧。这一次,我添加的是QQ表情图片,希望做到 public InsertImageFromGallery() : base("Insert Image From Gallery", "insertimagefromgallery")
{ base.isBuiltIn = true; base.isProFeature = false; base.BuiltInButtonOffset = 0x15; base.builtInScript = "this.ftb.InsertImageFromGallery();"; base.className = "InsertImageFromGallery"; } 他看上去很懒,仅仅做了这些,这个对我们来说无疑是个好消息。当然,如果你对FreeTextBox比较熟悉的话, FTB_FreeTextBox.prototype.InsertImageFromGallery = function() {
url = this.imageGalleryUrl.replace(/\{0\}/g,this.imageGalleryPath); url += "&ftb=" + this.id; var gallery = window.open(url,’gallery’,’width=700,height=600,toolbars=0,resizable=1’); gallery.focus(); } 当然了,FreeTextBox现在的版本已经把这些代码做为嵌入资源,编译到dll文件里了,你可以通过Free using System;
using FreeTextBoxControls; namespace FreeTextBoxControls { /**//// <summary> /// InsertQQ 的摘要说明。 /// </summary> public class InsertQQ:ToolbarButton { public InsertQQ(): base("Insert QQ", "insertqq") { this.ButtonImage = "QQ"; this.ScriptBlock = "this.ftb.InsertQQ();"; this.CommandIdentifier = "InsertQQ"; this.FunctionName = "InsertQQ"; this.Title = "插入表情"; } } } 相应的,在FTB-FreeTextBox.js添加类似的客户端处理代码,我的按钮的代码如下: /**//*插入QQ表情*/
FTB_FreeTextBox.prototype.InsertQQ = function() { var myUrl = ’InsertQQImages.aspx’; var myQQ = window.showModalDialog(myUrl,’qq’,’dialogWidth=160px;dialogHeight=170px;status=no’); if(myQQ != undefined) { var doc = this.designEditor.document; var image = doc.createElement("img"); image.src = myQQ; this.designEditor.focus(); var sel = this.GetSelection(); var range = this.CreateRange(sel); if (FTB_Browser.isIE) { range.pasteHTML(image.outerHTML); } else { this.InsertNodeAtSelection(image); } } } 这样,制作按钮的工作基本可以结束了,接下来,看如何把我们自己制作的按钮添加到工具栏上。 public static void AddToolBarButton(FreeTextBoxControls.FreeTextBox myFtb)
{ Toolbar bar = null; bar = new Toolbar(); bar.Items.Add(new ParagraphMenu()); bar.Items.Add(new FontFacesMenu()); bar.Items.Add(new FontSizesMenu()); bar.Items.Add(new FontForeColorsMenu()); bar.Items.Add(new FontForeColorPicker()); bar.Items.Add(new FontBackColorsMenu()); bar.Items.Add(new FontBackColorPicker()); myFtb.Toolbars.Add(bar); bar = new Toolbar(); bar.Items.Add(new Bold()); bar.Items.Add(new Italic()); bar.Items.Add(new Underline()); bar.Items.Add(new StrikeThrough()); bar.Items.Add(new SuperScript()); bar.Items.Add(new SubScript()); bar.Items.Add(new RemoveFormat()); myFtb.Toolbars.Add(bar); bar = new Toolbar(); bar.Items.Add(new InsertImageFromGallery()); bar.Items.Add(new InsertQQ()); myFtb.Toolbars.Add(bar); }
到此,你就可以使用你自己的按钮啦,但我要说明以下三点: 到这里你就可以享受你自己的按钮带来的愉悦吧!除此之外就让我们感谢FreeTextBox的作者 转自:http://www.cnblogs.com本文来源:
参考文档:
C# 控件的属性是个类,如何给添加自定义属性 控件的属性是个类,如何给添加自定义属性(C#) Winform开发框架 - 特殊权限控制(扩展权限和自定义按钮功能) GridView实现自定义按钮及中间插入记录排序功能 C#.Net开发继承UITypeEditor接口的自定义属性编辑器 C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象 C#.Net组件开发(高级篇) - 使用自定义TypeConverter生成设计时代码 关于扩展权限、扩展功能按钮及自定义功能点的命名|C/S框架网 如何进行菜单管理、扩展权限、更改自定义按钮名称|C/S框架网 如何扩展窗体的自定义权限按钮 如何删除Toolbar的自定义按钮? 如审核|反审|根据按钮名称删除 解决方案:扩展按钮自定义权限没有出现在权限树给用户勾选 DevExpress GridControl组件的EmbeddedNavigator属性添加用户自定义按钮 模块主窗体怎样控制自定义按钮的权限 窗体的自定义按钮权限控制-扩展权限按钮详解
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |