当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·streamreader的超时问题    »显示摘要«
    摘要: 我连接了一个networkstream类型 代码如下 system.net.sockets.networkstream netstrm; sr = new streamreader(netstrm); ....操作 在操作较长时间的时候(<1分钟),提示timeout 是不是sr有时间限制啊? 谢谢 ......
    摘要: 求教高手,在.net里char类型为2个字节(unicode编码).而c++中char类型为1个字节.原来一个全角的汉字存放在两个char中,可.net只要一个. 例如:"求".length 为1 我要限制一个字符串只能为300字节(如果是汉字只能有150字,但可以有300个半角的字符),超过300个字节,超出部分截断.如何做? 我原来的代码: if(strimgcom......


VB可以动态创建ActiveX控件吗

rt

NO.1   作者: lihonggen0

在VB中动态添加可响应消息的控件  
  在VB编程中,经常要根据不同的情况在运行时向窗口中添加或者删除控件,而各个控件还要  
  响应各种事件。在一般的情况下是首先在设计时将控件加入到窗口中,在它们的各个事件中写入  
  代码,然后将它们的Visible属性设置为False。在运行时再使控件显示出来,但是这样既不方便  
  同时也因为在设计时在窗口中加入太多的控件而使得程序的运行速度变慢。下面我向大家介绍一  
  种通过编程在运行时动态添加和删除控件的方法  
  首先建立一个工程文件,然后在Form1中加入以下的代码:  
  Dim   WithEvents   cmdMyCommand   As   VB.CommandButton  
  Option   Explicit  
  在下面的定义中,程序定义了一个TextBox控件、一个CommandButton控件  
  和一个附加控件。  
  Dim   WithEvents   ctlDynamic   As   VBControlExtender  
  Dim   WithEvents   ctlText   As   VB.TextBox  
  Dim   WithEvents   ctlCommand   As   VB.CommandButton  
  Dim   WithEvents   ctlCommandDel   As   VB.CommandButton  
  Private   Sub   ctlCommandDel_Click()  
  Dim   i   As   Integer  
  将控件的许可证信息删除  
  Licenses.Remove   "MSComctlLib.TreeCtrl"  
  If   MsgBox("是否删除所有控件",   vbYesNo)   =   vbYes   Then  
  For   i   =   1   To   Form1.Controls.Count  
  Controls.Remove   0  
  Next   i  
  End   If  
  End   Sub  
  Private   Sub   ctlCommand_Click()  
  ctlText.Text   =   "你点击的是控制按钮"  
  End   Sub  
  Private   Sub   ctlDynamic_ObjectEvent(Info   As   EventInfo)  
  当点击树形控件的某一个条目后,在ctlText中显示条目。  
  If   Info.Name   =   "Click"   Then  
  ctlText.Text   =   "你点击的条目是   "   &   _  
  ctlDynamic.object.selecteditem.Text  
  End   If  
  End   Sub  
  Private   Sub   Form_Load()  
  Dim   i   As   Integer  
    将树形控件的许可证信息加入到许可证集合中  
    如果许可证已经存在,则会返回错误信息732  
  Licenses.Add   "MSComctlLib.TreeCtrl"  
    在Form中动态的加入一个树形控件,如果你想树形控件建立到不同的  
  容器中,象一个Frame控件或者PictureBox控件,你只要将Controls.Add  
  函数的第三个参数改为特定的容器名就可以了  
  Set   ctlDynamic   =   Controls.Add("MSComctlLib.TreeCtrl",   _  
  "myctl",   Form1)  
  设置树形控件的位置和尺寸  
  ctlDynamic.Move   1,   1,   2500,   3500  
  在树形控件中加入10个节点  
  For   i   =   1   To   10  
  ctlDynamic.object.nodes.Add   Key:="Test"   &   Str(i),   _  
  Text:="Test"   &   Str(i)  
  ctlDynamic.object.nodes.Add   Relative:="Test"   &   Str(i),   _  
  Relationship:=4,   Text:="TestChild"   &   Str(i)  
  Next   i  
  使树形控件可见  
  ctlDynamic.Visible   =   True  
  加入一个TextBox  
  Set   ctlText   =   Controls.Add("VB.TextBox",   "ctlText1",   Form1)  
  设置TextBox的位置和尺寸  
  ctlText.Move   (ctlDynamic.Left   +   ctlDynamic.Width   +   50),   _  
  1,   2500,   100  
  将textBox的背景色设置为蓝色并将前景色设置为白色  
  ctlText.BackColor   =   vbBlue  
  ctlText.ForeColor   =   vbWhite  
  使TextBox可见  
  ctlText.Visible   =   True  
  加入一个CommandButton  
  Set   ctlCommand   =   Controls.Add("VB.CommandButton",   _  
  "ctlCommand1",   Form1)  
  设置CommandButton的位置和尺寸  
  ctlCommand.Move   (ctlDynamic.Left   +   ctlDynamic.Width   +   50),   _  
  ctlText.Height   +   50,   1500,   500  
  设置CommandButton的标题  
  ctlCommand.Caption   =   "点击"  
  使CommandButton可见  
  ctlCommand.Visible   =   True  
  建立一个删除按钮  
  Set   ctlCommandDel   =   Controls.Add("VB.CommandButton",   _  
  "ctlCommand2",   Form1)  
  ctlCommandDel.Move   (ctlDynamic.Left   +   ctlDynamic.Width   +   50),   _  
  ctlText.Height   +   650,   1500,   500  
  ctlCommandDel.Caption   =   "删除所有控件"  
  ctlCommandDel.Visible   =   True  
  End   Sub  
  运行上面的程序,可以看到程序在窗口中加入了三个VB标准控件:一个TextBox和两个  
  CommandButton还加入了一个扩展的ActiveX控件:树形控件。这些控件还可以响应消息,  
  点击树形控件中的项目或者“点击”按钮就可以在文本框中显示相应的内容。点击“删除  
  所有控件”按钮就可以删除加入的所有控件了。  
  通过上面的程序可以看到,通过WithEvents可以定义带事件相应的控件,对于标准的VB  
  控件可以通过VB.XXX来定义,其中XXX是控件的类的名称  
  ,而对于扩展的ActiveX控件,可以通过VBControlExtender来定义,在装载扩展控件以前,  
  首先要使用Licenses对象加入控件的许可证信息。  
  上面的程序在VB6,WIN98中文版下运行通过。  
     
   
   
 


 ·两个表单打开时的不同表现    »显示摘要«
    摘要: 我有两个表单,可从视图中打开时一个触发:queryopen事件,另一个触发:postopen事件,请问这是什么原因,表单类型都是文档型,其它的也都相同,可怎么会出现这样呢? 请教各位,谢谢!! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE