如何在VB.NET中使用动态属性 Visual Basic .NET支持动态属性,其动态属性储存在一个应用程序配置文件中,该文件在应用程序执行时将会被读到 。使用动态属性可以在不重新编译应用程序的情况下改变一些属性值 。你可以使用它们保存数据库连接字符串、应用程序日志信息或者服务器连接信息 。
要看动态属性的例子,首先在Visual Basic中创建一个Windows应用程序 。添加一个TextBox到默认窗体中;确认TextBox是被选中的,然后在属性窗口中定位Dynamic属性 。
点击Advanced标签旁边的省略号按钮,打开一个对话框,该对话框中列出了TextBox所有的属性,选择Text属性,键映射框将会被激活 。键映射决定了键储存在配置文件中的值 。点击确定关闭对话框 。
我知道在VB和VB.net中怎样添加动态控件 , 可是我添加的这些控件怎样添加相应的事件呢?Dim Text() As Object
Private Sub Form_Load()
Dim i As Integer
Dim nTop As Long
ReDim Text(1 To 10)
For i = 1 To 10
Set Text(i) = Controls.Add("VB.TextBox", "Text1"CStr(i))
Text(i).Height = 300
Text(i).Top = nTop
Text(i).Visible = True
【vb.net动态块 vb动态库制作】nTop = nTop + 30 * 15
Next i
End Sub
添加动态控件 。vb.net动态块你可以自己试试看 。form1上什么都不加运行这个程序后会发现自动生成vb.net动态块了10个text控件
VB.NET中的动态代码生成技巧 本文的讨论也将着眼于这两种情况 首先是当程序员需要动态建立一个控件并将代码附着于控件之上时 例如 你或许想创建一个链接列表 但是不知道需要创建链接的数量或是链接中会出现什么样的数据 第二种是当程序员需要定义代码以反映出特殊需求的时候 例如 你或许要执行能反映用户系统配置的代码
类似上述的情况当然不会每天都上演 事实上 它们只在非常情况下才出现 然而 作为程序员 仍然要意识到 NET为解决动态情形提供了方案 有了正确的技巧 你就可以写出能灵活处理动态情况的应用程序了
使用动态控件
许多程序员总会遇到需要动态创建控件的时候 我们所展示的例子中程序员向FlowLayoutPanel中添加了LinkLabels 或许你可以个这样的设置来记录和保存常用的URL 文件 网络地址或是其他资源所在位置的数值 这一示例没有真正保存链接 但是你可以使用XML序列化功能来实现保存
每次当用户点击Test按钮时 示例代码就会动态创建一个新的LinkLabel控件 真正的演示代码并不复杂 例一就展示了创建这类控件以及将控件放入FlowLayoutPanel lstLabel中通常所需要做的一切
例一 向FlowLayoutPanel中添加新的链接Private Sub btnTest_Click() Handles btnTest ClickCreate a linkDim NewLink As LinkLabel =New LinkLabel()Add some properties to itNewLink Text = DateTime NowToLongTimeString()Set the click event handlerAddHandler NewLink ClickAddressOf NewLink_ClickPlace the button on the formlstLinks Controls Add(NewLink) End Sub
如你所料 该代码开始的时候创建了一个新的LinkLabel并为其赋予了一些值 这一示例使用的是当前时间 你的代码或许能够对某一真实资源进行访问
请注意该代码也向链接的Click事件中指定了一个处理程序 你必须使用示例中的AddHandler技巧 因为普通的Handles关键词路径不起作用 一方面 设计应用程序的时候你并不清楚控件的名称 即便你为控件指定了一个名称 你也不知道用户要创建的控件数量 所以我们没有办法清楚会有多少处理程序会被创建 处理程序的代码与控件代码类似 因此没有必要创建多个处理程序 用于这个示例的处理代码见例二 例二 处理动态控件点击事件Private Sub NewLink_Click( _ ByVal sender As System ObjectByVal e As System EventArgs)Verify that you actually have a LinkLabelIf Not sender GetType() Is GetType(LinkLabel) ThenMessageBox Show( Wrong control type provided! )ReturnEnd IfConvert the input sender to a Button Dim ThisLink As LinkLabel = senderShow that we have the correct button MessageBox Show( You created this link at:+ ThisLink Text)End Sub
推荐阅读
- python爬虫解决乱码,python爬虫编码转换
- 怎么做树洞小程序,怎么做树洞赚钱
- 公众号光遇怎么更新,光遇最新版本怎么更新
- c语言函数头文件怎么写 c语言函数的头文件
- 用gis切割栅格图像,gis分割栅格
- postgresqlgeojson的简单介绍
- 版虎牙直播,虎牙直播英雄杀
- pythonans函数 python函数csdn
- 包含朋友圈视频号怎么开通权限的词条