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

📄 compositeinput.cs

📁 很好的学习资料,对菜鸟学习c#很有帮助啊,希望你们好好学习
💻 CS
字号:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Xml;
using System.Collections;
namespace CompositeInput
{
	/// <summary>
	/// WebCustomControl1 的摘要说明。
	/// </summary>
	[DefaultProperty("Text"),
		ToolboxData("<{0}:ComInput runat=server></{0}:ComInput>")]
	public class ComInput : Control, INamingContainer
		//标识在 Page 对象的控件层次结构内创建新 ID 命名空间的容器控件。这仅是一个标记接口。
	{
		private string strFileName = "bad_words.xml";
		private Label label;
            
		public string FileName
		{
			get
			{
				return strFileName;
			}
			set
			{
				strFileName = value;
			}
		}
            
		//以用户提交的文本内容为输入参数。如果用户提交的内容包含攻击性言辞,
		//则返回修改后的版本,
		//否则,直接返回原始的文本。
		public string CheckString(string InputString)
		{
			ArrayList alWordList = new ArrayList();
			string  xmlDocPath  = this.Page.Server.MapPath("bad_words.xml");
			XmlTextReader  xmlReader = new XmlTextReader(xmlDocPath);
			string asterisks  = "*************************";
			// 将定义攻击性言辞的xml文件内容读入到一个ArrayList
			while (xmlReader.Read())
			{
				if(xmlReader.NodeType==XmlNodeType.Text)
					alWordList.Add(xmlReader.Value);
			}
			xmlReader.Close();

			//检查用户提交的文本内容,将攻击性言辞替换为适当数量的星号
			foreach(string element in alWordList)
				InputString=InputString.Replace(element,asterisks.Substring(1, (element.Length)));
			return InputString ;
		}

		public string Text
		{
			get
			{
				EnsureChildControls();
				return label.Text;
			}
			set
			{
				EnsureChildControls();
				label.Text = value;
			}
		}
            
            
		public event CheckEventHandler Check;
            
		protected virtual void OnCheck(CheckEventArgs ce)
		{
			if (Check != null)
			{
				Check(this,ce);
			}
		}
            
		protected override void CreateChildControls() 
		{
			Controls.Add(new LiteralControl("<h3>请在下面输入文字内容: "));

			TextBox box1 = new TextBox();
			box1.Text = "";
			Controls.Add(box1);
                  
			Controls.Add(new LiteralControl("</h3>"));
                  
			Button button1 = new Button();
			button1.Text = "提交";
			Controls.Add(new LiteralControl("<br>"));
			Controls.Add(button1);
			button1.Click += new EventHandler(this.ButtonClicked);
                  
			Controls.Add(new LiteralControl("<br><br>"));
			label = new Label();
			label.Height = 50;
			label.Width = 500;
			label.Text = "";
			Controls.Add(label);
                  
		}
            
		protected override void OnPreRender(EventArgs e)
		{
			((TextBox)Controls[1]).Text = "";

		}
            
		private void ButtonClicked(Object sender, EventArgs e)
		{
			OnCheck(new CheckEventArgs(((TextBox)Controls[1]).Text,CheckString(((TextBox)Controls[1]).Text)));
		}
	}
	public class CheckEventArgs : EventArgs
	{
		private bool match = false;
            
		public CheckEventArgs (string str1,string str2)
		{
			if (str1 == str2)
			{
				match = true;
			}
		}
		public bool Match
		{
			get
			{
				return match;
			}
		}
	}
      
	public delegate void CheckEventHandler(object sender, CheckEventArgs ce);
}

⌨️ 快捷键说明

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