如何动态加载multiline的text控件

原创 2004年08月07日 10:33:00

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

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

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

其实我们可以找到一个替代的方法,微软给我们提供了一组无窗口控件库。所谓“无窗口控件”是见名知义,是没有无窗口,因而没有hwnd属性。这个库在主要语言的参考文档中没有提到,它必须手工从common/Tools/vb/Winless目录下安装。安装的方法是将这个目录复制到硬盘上,用regsvr32vb中对它进行注册,然后双击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控件的信息”的复选框不要选。

在multiline模式下限制textbox 的长度

在multiline模式下限制textbox 的长度当textbox的mode被设为multiline后,无法限制其可输入字符个数,可用regularvalidator来限制,规则设为: ^[/s/S...
  • ahywg
  • ahywg
  • 2010-05-27 10:59:00
  • 2555

控件textbox的TextMode="MultiLine"时的限制字数多少问题

TextMode="MultiLine"的Textbox不能用平常的MaxLength属性来标识,这个属性在此地不起作用,那么问题来了,该怎么做呢?   在此控件中利用onkeydown事件和on...
  • u010078133
  • u010078133
  • 2015-06-19 14:07:52
  • 1402

Multiline Text Editing Widget (5)

From: http://www.bravegnu.org/gtktext/x346.htmlPrevNext5. Examining and Modifying TextExamining and ...
  • Yazy
  • Yazy
  • 2005-06-04 10:21:00
  • 1305

如何解决MultiLineEdit控件自动换行(原创)

如何解决MultiLineEdit控件自动换行?想了很多办法,包括根据一行最大字符数按照中文/西文不同情况进行处理,最后加上回车换行符,但是效果不好。因为中文的字符宽度比较一致,但是西文就不同了,例如...
  • whchen
  • whchen
  • 2005-10-24 09:12:00
  • 1952

textBox multiline

 获取或设置一个值,该值指示在多行文本框控件中按 TAB 键时,是否在控件中键入一个 TAB 字符,而不是按选项卡的顺序将焦点移动到下一个控件。[Visual Basic]Public Propert...
  • web_gus
  • web_gus
  • 2004-10-13 11:24:00
  • 1896

android ellipsize multiline textview

http://stackoverflow.com/questions/2160619/android-ellipsize-multiline-textview这里有详细的解决办法...
  • zhaohuiyan9837
  • zhaohuiyan9837
  • 2016-12-02 13:18:44
  • 177

C# 给Word文档添加内容控件

在MSWord中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片、日期、列表或格式化的文本等),从而创建一个结构化的word文档。下面就来看看如何使用Spire...
  • Eiceblue
  • Eiceblue
  • 2016-06-13 17:08:06
  • 2074

C# 动态加载插件的实现

花了半天时间,终于弄懂了C#如何现实动态加载插件的。就像photoshop一样只要在plugin里面丢几个dll就可以多一个滤镜。 总体思路必将简单 1.必须定义公共接口规范,说白点就是主程序在调...
  • u012804387
  • u012804387
  • 2014-03-25 15:20:30
  • 503

easyui Multiline TextBox 获取值

alert($("#txtTest").textbox('getText'))
  • yelin042
  • yelin042
  • 2017-06-25 14:56:27
  • 703

基于ASP.NET的采用js脚本实现multiline textbox 的字符长度验证函数

  • 2008年09月29日 17:13
  • 2KB
  • 下载
收藏助手
不良信息举报
您举报文章:如何动态加载multiline的text控件
举报原因:
原因补充:

(最多只允许输入30个字)