欢迎光临
我们一直在努力

如何动态加载multiline的text控件-.NET教程,组件控件开发

建站超值云服务器,限时71元/月

我刚开始在csdn的vb论坛里看到这个帖子的时候,想了很久都没有找到解决方法。后来看zy910写到“由于edit控件的设定(只能在创建窗口时设置风格,创建后不能修改)

所以textbox的multiline屬性实现原理是:先清除原有的edit,再创建一个新的edit

这在设计时是可行的。但在运行时,会导致文本框相关数据的丢失,甚至会因不安全的代码导致非法操作,所以m$将textbox的multiline屬性设置成运行时只读”,那么通过直接使用textbox控件是无法满足要求的了。

其实我们可以找到一个替代的方法,微软给我们提供了一组无窗口控件库。所谓“无窗口控件”是见名知义,是没有无窗口,因而没有hwnd属性。这个库在主要语言的参考文档中没有提到,它必须手工从common\tools\vb\winless目录下安装。安装的方法是将这个目录复制到硬盘上,用regsvr32或vb中对它进行注册,然后双击mswless.reg,它创建使activex控件对vb环境可用的注册关键字。注册完毕后,从按ctrl+t从可用的active控件列表中选取microsoft windowless control 6来把函数库加载到ide中。

使用windowless函数库的好处是在运行时没有内部控件的限制,事实上所有的属性都可以在运行时改变。这个库中包括textbox的无窗口版—mswless.wltext。也就说我们可以通过动态加载这个控件,来实现动态添加multiline属性的text控件。

dim withevents txteditor as mswless.wltext

private sub command1_click()

set txteditor = controls.add("msless.wltext", "txtedit")

txteditor.multiline = true

txteditor.scrollbars = wlboth

txteditor.move 0, 0, scalewidth, scaleheight

txteditor.visible = true

end sub

注意:“工程属性”中“删除有关未使用的active控件的信息”的复选框不要选。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何动态加载multiline的text控件-.NET教程,组件控件开发
分享到: 更多 (0)