我有一个搜索用户控件,我想制作通用的。
控件本身将包含取决于其上下文的不同控件集合。例如,它可以是股票项目,人员,地址作为搜索的上下文..
如何使其足够通用,基于搜索上下文,它确切知道用户在表单上需要控制的内容?
然后任何程序员都可以将用户控件拖到他们的表单上,设置它的上下文,我们很高兴。
我的第一个想法是为所有单个用户控件创建一个基本控件,搜索对话框在构造函数中接受这些控件,因此它知道在运行时显示哪些控件。您可以创建基本控件的继承版本并将其传递给。或者只是设置搜索上下文(枚举),它可以显示用户在运行时控制的内容。
全部.net 2.0 Winform
为readibilty编辑。 Q之前太过冗长和详细。
答案 0 :(得分:2)
在我们的项目中,我们通过添加ISearchable
与CanSearch
和Search
属性的界面来实现此目的。这些方法引用了指向前向或后向的方向参数,Search方法还使用了一个字符串来执行搜索,并使用一个枚举来指定匹配的类型(短语的开头,短语的结尾,短语中包含的内容等)。
然后,我们在层次结构中的所有控件上实现了此接口。然后,每个控件都按照其认为合适的方式委托给子控件。我们的容器应用程序将包含一个文本框并找到下一个/上一个按钮。容器将查询接口层次结构中的第一个视图,然后链接到目标控件,如层次结构中的每个控件所看到的那样。
我们为剪贴板操作实现了一种替代方法,我们首先直接检查了主动聚焦控件,看它是否支持我们的ISupportEdit
界面。如果没有,我们就会使用层次结构方法。