⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toolbargenerator.cs

📁 一个基于 Internet Explorer 中 MSHTML 技术的 ASP.NET 服务器控件
💻 CS
字号:
using System;
using FreeTextBoxControls.Common;

namespace FreeTextBoxControls {
	/// <summary>
	/// Builds Toolbars and ToolbarItems from strings 
	/// </summary>
	public class ToolbarGenerator {
		//Toolbar layouts
		public static string DefaultConfigString = "Bold,Italic,Underline,Strikethrough;Superscript,Subscript,RemoveFormat|FontFacesMenu,FontSizesMenu,FontForeColorsMenu|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent;CreateLink,Unlink,InsertImage,InsertTable,InsertRule|Cut,Copy,Paste;Undo,Redo,Print,ieSpellCheck";
		public static string AlternateConfigString = "Save,Print,Undo,Redo,WordClean,InsertTable|ParagraphMenu,FontFacesMenu,FontSizesMenu,SymbolsMenu|Bold,Italic,Underline,Strikethrough;Superscript,Subscript,RemoveFormat|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent;CreateLink,Unlink,InsertImage,InsertRule|Cut,Copy,Paste,ieSpellCheck";
		public static string EnableAllConfigString = "ParagraphMenu,FontFacesMenu,FontSizesMenu|FontForeColorsMenu,FontBackColorsMenu|Bold,Italic,Underline,Strikethrough,Superscript,Subscript;InsertImage,CreateLink,Unlink,RemoveFormat|JustifyLeft,JustifyRight,JustifyCenter,JustifyFull;BulletedList,NumberedList,Indent,Outdent|Cut,Copy,Paste,Delete;Undo,Redo,Print,Save|StyleMenu,SymbolsMenu,InsertHtmlMenu|InsertRule,InsertDate,InsertTime,WordCount,ieSpellCheck,WordClean,InsertTable,InsertRA";
		public static string MinimalConfigString = "Bold,Italic,Underline";
		
		/// <summary>
		/// Returns a Toolbars with the default configuration
		/// </summary>
		public static ToolbarList Default {
			get {
				return ToolbarGenerator.ToolbarsFromString(DefaultConfigString);
			}
		}
		/// <summary>
		/// Returns a Toolbars with the all buttons and dropdowns enabled
		/// </summary>
		public static ToolbarList EnableAll {
			get {
				return ToolbarGenerator.ToolbarsFromString(EnableAllConfigString);
			}
		}
		/// <summary>
		/// Returns a Toolbars with an alternate configuration
		/// </summary>			
		public static ToolbarList Alternate {
			get {
				return ToolbarGenerator.ToolbarsFromString(AlternateConfigString);
			}
		}
		/// <summary>
		/// Returns a Toolbars with only bold, italic, and underline
		/// </summary>
		public static ToolbarList Minimal {
			get {
				return ToolbarsFromString(MinimalConfigString);
			}
		}

		//ADD: Ethan J. Brown -- works like before, 
		/// <summary>
		/// Generates Toolbars from ToolbarLayout string
		/// </summary>
		public static ToolbarList ToolbarsFromString(string toolbarLayout)
		{
			return ToolbarsFromString(toolbarLayout, null);
		}

		/// <summary>
		/// Generates Toolbars from ToolbarLayout string
		/// </summary>
		//CHANGE: Ethan J. Brown - changed signature of method so that custom toolbar items can be used
		public static ToolbarList ToolbarsFromString(string toolbarLayout, ToolbarItemsList toolbarItemsList) {
			ToolbarList myToolbars = new ToolbarList();
			try {
				string[] ToolbarStrings = toolbarLayout.Replace(" ","").Replace(";",",;,").Replace(",,",",").ToLower().Split(new char[] {'|'});
				for (int i=0; i<ToolbarStrings.Length; i++) {
					Toolbar myToolBar = new Toolbar("Toolbar" + i.ToString());
					string[] ItemStrings = ToolbarStrings[i].Split(new char[] {','});
					for (int j = 0; j < ItemStrings.Length; j++) {
						//CHANGE: Ethan J. Brown -- call changed to support custom toolbar items
						myToolBar.Items.Add(ToolbarItemFromString(ItemStrings[j], toolbarItemsList));
					}
					myToolbars.Add(myToolBar);
				}
			} catch (Exception e) {
				throw new Exception("Invalid ToolbarLayout -> " + e.ToString());
			}
			return myToolbars;
		}

		//ADD: Ethan J. Brown -- works like before, passes null ToolbarItemsList
		/// <summary>
		/// Returns a ToolbarItem from it's string representation.  If an invalid string is given, a ToolbarSeparator is returned.
		/// </summary>
		public static ToolbarItem ToolbarItemFromString(string StringName) {
			return ToolbarItemFromString(StringName, null);
		}
		/// <summary>
		/// Returns a ToolbarItem from it's string representation.  If an invalid string is given, a ToolbarSeparator is returned.
		/// </summary>
		//CHANGE: Ethan J. Brown -- changed signature so that custom toolbar items can be used
		public static ToolbarItem ToolbarItemFromString(string StringName, ToolbarItemsList toolbarItemsList)  {
			switch (StringName.ToLower()) {
				case "insertra":
					return ToolbarItems.InsertRA;
				case "wordspellcheck":
					return ToolbarItems.WordSpellCheck;
				case "iespellcheck":
					return ToolbarItems.ieSpellCheck;
				case "save":
					return ToolbarItems.Save;
				case "bold":
					return ToolbarItems.Bold;
				case "italic":
					return ToolbarItems.Italic;
				case "underline":
					return ToolbarItems.Underline;
				case "strikethrough":
					return ToolbarItems.Strikethrough;
				case "superscript":
					return ToolbarItems.Superscript;
				case "subscript":
					return ToolbarItems.Subscript;
				case "removeformat":
					return ToolbarItems.RemoveFormat;
				case "justifyleft":
					return ToolbarItems.JustifyLeft;
				case "justifycenter":
					return ToolbarItems.JustifyCenter;
				case "justifyright":
					return ToolbarItems.JustifyRight;
				case "justifyfull":
					return ToolbarItems.JustifyFull;
				case "bulletedlist":
					return ToolbarItems.BulletedList;
				case "numberedlist":
					return ToolbarItems.NumberedList;
				case "indent":
					return ToolbarItems.Indent;
				case "outdent":
					return ToolbarItems.Outdent;
				case "cut":
					return ToolbarItems.Cut;
				case "copy":
					return ToolbarItems.Copy;
				case "paste":
					return ToolbarItems.Paste;
				case "delete":
					return ToolbarItems.Delete;
				case "undo":
					return ToolbarItems.Undo;
				case "redo":
					return ToolbarItems.Redo;
				case "print":
					return ToolbarItems.Print;
				case "changecase":
					return ToolbarItems.ChangeCase;
				case "createlink":
					return ToolbarItems.CreateLink;
				case "unlink":
					return ToolbarItems.Unlink;
				case "insertimage":
					return ToolbarItems.InsertImage;
				case "insertrule":
					return ToolbarItems.InsertRule;
				case "insertdate":
					return ToolbarItems.InsertDate;
				case "inserttime":
					return ToolbarItems.InsertTime;
				case "wordcount":
					return ToolbarItems.WordCount;
				case "fontfacesmenu":
					return ToolbarItems.FontFacesMenu;
				case "fontsizesmenu":
					return ToolbarItems.FontSizesMenu;
				case "fontforecolorsmenu":
					return ToolbarItems.FontForeColorsMenu;
				case "fontbackcolorsmenu":
					return ToolbarItems.FontBackColorsMenu;
				case "stylemenu":
					return ToolbarItems.StyleMenu;
				case "inserthtmlmenu":
					return ToolbarItems.InsertHtmlMenu;
				case "symbolsmenu":
					return ToolbarItems.SymbolsMenu;
				case "paragraphmenu":
					return ToolbarItems.ParagraphMenu;
				case "inserttable":
					return ToolbarItems.InsertTable;
				case "wordclean":
					return ToolbarItems.WordClean;
				//ADD: Ethan J. Brown -- finds matching toolbar item name in passed in list
				default:
					if (null != toolbarItemsList)
					{
						for (int i = 0; i < toolbarItemsList.Count; ++i)
						{
							if (StringName.ToLower() == toolbarItemsList[i].Name.ToLower())
								return toolbarItemsList[i];
						}
					}
					return ToolbarItems.Separator;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -