VB.NET winform应用程序 用户控件的自定义属性的获取问题 10

我创建了一个用户控件继承了textbox控件,之后在里面创建了一个用于选择校验方式的属性TypeChecking我自己定义了一个枚举PublicEnumCheckType... 我创建了一个用户控件继承了textbox控件,
之后在里面创建了一个用于选择校验方式的属性TypeChecking
我自己定义了一个枚举
Public Enum CheckType
None = 0
Number = 1
EnglishString = 2
SmallEnglishString = 3
BigEnglishString = 4
Email = 5
PhoneNumber = 6
TelephoneNumber = 7
End Enum
现在如果定义一个单选校验类型的属性可以实现。
我的问题是想实现一个属性,能够实现对以上枚举中的校验进行复合校验
(就是点赋值的时候出来一个类似于web应用程序里面的style一样,在弹出的窗体中通过选择一些属性并拼接成字符串)而我现在的想法就是在点给这个属性赋值的时候弹出一个窗体,里面有枚举里面的所有内容,以checkbox方式呈现,选中要进行的校验确定后,拼接的字符串成为这个属性的value。
问题就是上面,请大侠们给出属性的get set方法和实现过程并加以说明谢谢。
这个问题解决了 其实很简单 就是创建个编辑器,并在创建属性的时候指定editor就好了 谢谢回答者。
展开
 我来答
草薙在
2010-09-01 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6296万
展开全部
那你应该用位枚举

给你的Enum标记上FlagsAttribute,具体怎么标记attribute请你参考vb.net的语法

然后每一个值为二进制某一个位上的值,比如第一个是0,第二个是1,第三个是2,第四个是4,如果你不知道二进制位是什么的话,可以google,基本上是2的某个位次方,比如2的0次方是1,2的1次方是2,2的2次方是4等等

之后这种Enum就可以按位操作了,比如 CheckType.Number | CheckType.EnglishString获取的就是交集,同时包含了这两种状态
你可以通过 value & CheckType.Number == CheckType.Number来判断是否包含某一种或多个枚举位

接下来我想你应该知道怎么设计checkbox了吧,getset可以是原来的类型,只是这时候可以包含多个枚举值了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式