(该文章仅适合使用DCSoft.Writer的伙伴参考)
目前用DCSoft.Writer做电子病历编辑器,遇到个问题,用知识库控件时,加载数据比较慢,自带的检索功能也比较简单
,原本其他同事也遇到这个问题,没有能解决,现在客户又提这个问题,避无可避,遂进行改造
<Description("查询下拉列表项目事件")> Public Event QueryListItems As QueryListItemsEventHandler
根据官方文档,找到查询下拉列表事件,尝试修改参数属性,跳过自带检索控件。成功
args.Cancel = True
4.9.1.9.QueryListItems事件 该事件使用的委托类型的签名为: delegate DCSoft.Writer.WriterEventHandler( object sender , DCSoft.Writer.WriterEventArgs args ) 编辑器在展开输入域的下拉列表前填充下拉列表时触发该事件。应用程序可以响应该事件来提供输入域下拉列表的内容。 该事件第一个参数为触发事件的编辑器控件,第二个为事件参数。应用程序可以使用该事件参数的 Element属性值获得要填充下拉列表内容的文档输入域元素对象。
之后就是用我们的窗体获取用户选择的值,修改输入域的内容,尝试自带的“InsertXml”命令返回失败,“InsertString”命令成功,
这时候想到还会有需要先清除输入域的操作,查文档暂时没找到清除输入域内容的命令,转换思路,输入域应该可以直接设置值,调试模式下,直接看参数是否有属性代表用户输入值,找到这个属性
args.Element.Text = "InputString";
至此解决问题。
能解决问题的前提是官方提供了合适的接口,赞一个