colordropdownlist.cs

来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 176 行

CS
176
字号
/* 
 * ColorDropDownList.cs @Microsoft Visual Studio 2008 <.NET Framework 3.5>
 * AfritXia
 * 2006-07-20
 * 
 * Copyright(c) http://www.AfritXia.NET/
 * 
 */

using System;
using System.Collections;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

namespace NET.AfritXia.Components.Web.TextPane
{
	/// <summary>
	/// 颜色下拉列表框
	/// </summary>
	internal class ColorDropDownList : ToolbarDropDownList
	{
		// 首选项
		private string m_firstOption = null;

		#region 类 ColorDropDownList 构造器
		/// <summary>
		/// 类 ColorDropDownList 参数构造器
		/// </summary>
		private ColorDropDownList() : base()
		{
		}

		/// <summary>
		/// 类 ColorDropDownList 参数构造器
		/// </summary>
		/// <param name="commandName">命令名称</param>
		private ColorDropDownList(string commandName)
			: base(commandName)
		{
		}
		#endregion

		/// <summary>
		/// 控件初始化函数
		/// </summary>
		protected override void OnInit(EventArgs e)
		{
			base.OnInit(e);

			// 添加首选项
			if (this.m_firstOption != null && this.m_firstOption != "")
				this.Items.Add(new ListItem(this.m_firstOption));

			// 加入颜色值
			foreach (object value in Enum.GetValues(typeof(MyColor)))
			{
				// 转型为枚举值
				MyColor enumValue = (MyColor)value;
				// 获取字符串值
				string valueString = value.ToString();

				// 建立选项 <option></option>
				ListItem option = new ListItem();

				// 设置选项值
				option.Value = valueString;
				// 设置选项文本
				option.Text = valueString;

				// 添加 CSS 样式表
				option.Attributes.CssStyle.Add("background-color", valueString);

				// 如果背景色过深,则需要反色
				if (IsNeedToInverseColor(enumValue))
					option.Attributes.CssStyle.Add("color", MyColor.White.ToString());

				this.Items.Add(option);
			}
		}

		/// <summary>
		/// 是否需要反色
		/// </summary>
		/// <param name="enumValue">颜色枚举值</param>
		/// <returns></returns>
		private bool IsNeedToInverseColor(MyColor enumValue)
		{
			if (enumValue == MyColor.Black || enumValue == MyColor.Blue)
				return true;

			if (enumValue == MyColor.Gray || enumValue == MyColor.Green)
				return true;

			if (enumValue == MyColor.Maroon)
				return true;

			if (enumValue == MyColor.Navy)
				return true;

			if (enumValue == MyColor.Olive)
				return true;

			if (enumValue == MyColor.Purple)
				return true;

			if (enumValue == MyColor.Teal)
				return true;

			return false;
		}

		/// <summary>
		/// 建立颜色下拉列表框
		/// </summary>
		/// <param name="firstOption">首选项</param>
		/// <param name="commandName">命令名称</param>
		/// <returns></returns>
		public static ColorDropDownList Create(string firstOption, string commandName)
		{
			ColorDropDownList dropDownList = new ColorDropDownList(commandName);

			// 设置首选项
			dropDownList.m_firstOption = firstOption;

			return dropDownList;
		}

		#region MyColor 自定义颜色枚举
		/// <summary>
		/// MyColor 自定义颜色枚举
		/// </summary>
		private enum MyColor
		{
			// Aqua = 0x00ffff
			Aqua,
			// Black = 0x000000
			Black,
			// Blue = 0x0000ff
			Blue,
			// Fuchsia = 0xff00ff
			Fuchsia,
			// Gray = 0x808080
			Gray,
			// Green = 0x008000
			Green,
			// Lime = 0x00ff00
			Lime,
			// LightGray = 0xd3d3d3
			LightGrey,
			// Maroon = 0x800000
			Maroon,
			// Navy = 0x000080
			Navy,
			// Olive = 0x808000
			Olive,
			// Pink = 0xffc0cb
			Pink,
			// Purple = 0x800080
			Purple,
			// Red = 0xff0000
			Red,
			// Silver = 0xc0c0c0
			Silver,
			// Teal = 0x008080
			Teal,
			// White = 0xffffff
			White,
			// Yellow = 0xffff00
			Yellow
		};
		#endregion
	}
}

⌨️ 快捷键说明

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