知识大全 自验证文本框和Observer模式
Posted 知
篇首语:人的知识愈广,人的本身也愈臻完善。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 自验证文本框和Observer模式相关的知识,希望对你有一定的参考价值。
自验证文本框和Observer模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最近写程序当中需要做一个表单提交(WinForm) 当所有的表单项目符合要求时 提交按钮为可用 否则不可用 一般我们需要写一个验证的函数 然后触发TextBox的某个事件来调用函数 函数中记录下是否所有的表单项目都符合要求 是则提交按钮可用
关于自验证本文框 在CodeProject上找到了TextBoxRegex 是一个不错的自验证TextBox
关于Observer模式 按照四人团的说法 Observer 模式的意图是 定义对象间的一种一对多的依赖关系 当一个对象的状态发生改变时 所有依赖于它的对象都得到通知并自动更新
直接给代码
第一步 定义两个接口
IObserver接口
public interface IObserver void Update(); void Attach(ISubject sub); void Detach(ISubject obs); IList MySubject get;ISubject接口
public interface ISubject IList MyObserver get ; void Attach(IObserver obs); void Detach(IObserver obs); void Notify(); bool IsValided();第二步 写TextBox Button控件 这里用到了TextBoxRegex
TextBox控件
public class CNWTextbox : TextBoxRegex ISubject private ArrayList obsList; public CNWTextbox() obsList = new ArrayList(); this UseInvalidTextException = true; ISubject 成员#region ISubject 成员 public IList MyObserver get return obsList; public void Attach(IObserver obs) obsList Add(obs); obs Attach(this); public void Detach(IObserver obs) obsList Remove(obs); obs Detach(this); public void Notify() foreach (IObserver obs in obsList) obs Update(); #endregion protected override void OnTextChanged(EventArgs e) base OnTextChanged(e); //通知所有Observer更新自己 Notify(); public bool IsValided() try string temp = this TextValidated; return true; catch (Chopeen InvalidTextException ex) Console WriteLine(ex ToString()); return false;Button控件
public class CNWButton:Button IObserver private ArrayList mySubjects; public CNWButton() mySubjects = new ArrayList(); IObserver 成员#region IObserver 成员 void IObserver Update() foreach (ISubject sub in mySubjects) if (sub IsValided()) this Enabled = true; else this Enabled = false ; break; void IObserver Attach(ISubject sub) mySubjects Add(sub); void IObserver Detach(ISubject sub) mySubjects Remove(sub); System Collections IList IObserver MySubject get return mySubjects; #endregion第三步 使用
cnwTextbox cnwTextbox cnwButton 是上面制作的控件
private void Form _Load(object sender EventArgs e) cnwTextbox Attach(cnwButton ); cnwTextbox Attach(cnwButton ); cha138/Article/program/net/201311/13047相关参考
知识大全 java 设计模式之 观察者模式(Observer)
java设计模式之观察者模式(Observer) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
利用Observer模式解决组件间通信问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 问题的
.net中委托,时间和Observer设计模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 将
本文为大家介绍下利用js来验证文本框的值当鼠标焦点离开文本框时进行验证示例代码如下感兴趣的朋友可以参考下哈希望对大家有所帮助 利用js来验证文本框的值复制代码代码如下:lishixinz
struts的验证器是用的xwork里面的验证自定义验证器就是根据源码继承已有的字段验证器而来具体步骤如下: 展开xworkjaropensymphonyxwork validatorvali
知识大全 word2007文本框内文字的垂直对齐无法设置,三种模式的按钮都是灰色的。求高手指点
word2007文本框内文字的垂直对齐无法设置,三种模式的按钮都是灰色的。求高手指点!用word2007修改2003兼容的文档才会出现这个问题,如果另存为2007文档,则没有这个问题。(我试验过了)w
做开发的都知道在VS里提供了很多的验证控件比如RequiredFieldValidatorRangeValidatorRegularExpressionValidator等等他们都是继承于Base
FCKeditor自定义非空验证 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 有时在使用FCK
代码如下:<?php//抽象主题interfaceSubjectpublicfunctionattach($observer);publicfunctiondetach($obser
ASP.NETMVC如何实现自定义验证 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &