label1.caption =
宜丰网站建设公司创新互联公司,宜丰网站设计制作,有大型网站制作公司丰富经验。已为宜丰上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的宜丰做网站的公司定做!
"* * * * * * * * * *" chr(10)+chr(13)
"* * * * * * * * * *" chr(10)+chr(13)
"* * * * * * * * * *" chr(10)+chr(13)
"* * * * * * * * * *" chr(10)+chr(13)
"* * * * * * * * * *"
在中 TreeView(树型结构)控件是显示节点(Node)对象的级层结构 它通常用于显示一些有等级结构的信息 我们最为熟悉的就是Windows资源管理器左边显示文件和文件夹的窗口 在工具箱中 TreeView 控件的图标如下图一所示
TreeView控件的每个节点(Node对象)包含了一个标签和可选的点位图 每个节点又可能包含有若干个的子节点 可以通过控制某个节点来展开显示或者折叠隐藏它所包含的子节点
一 TreeView 控件的一些常用属性
CheckBoxes 属性 指示是否在树视图控件中的树节点旁显示复选框
FullRowSelect 属性 当 FullRowSelect 为 true 时 选择突出显示将跨越树视图的整个宽度 即整个显示区域的宽度而不仅仅是树节点标签的宽度 如果 ShowLines 设置为 true 则将忽略 FullRowSelect 属性
HideSelection 属性 指示选定的树节点是否即使在树视图已失去焦点时仍会保持突出显示
HotTracking 属性 如果 HotTracking 属性设置为 true 那么当鼠标指针移过每个树节点标签时 树节点标签都将具有超级链接的外观 Underline 字体样式将应用于 Font 而 ForeColor 将设置为蓝色 从而使标签显示为链接 注意 如果 CheckBoxes 属性设置为 true HotTracking 属性将失效
Indent 属性 设置每个子树节点级别的缩进距离(以像素为单位)
ItemHeight 属性 设置树视图控件中每个树节点的高度
Nodes 属性 获取分配给树视图控件的树节点集合 这个属性是TreeView 控件最重要的属性之一 我们下文将会对它进行更加的详细的说明
PathSeparator 属性 树节点路径(TreeNode FullPath 属性)所使用的分隔符串 默认为反斜杠字符 (\) 树节点路径包括一组由 PathSeparator 分隔符串分隔的树节点标签 标签的范围为根树节点到所需的树节点 如下代码我们可以获得当前选中的节点的路径
MessageBox Show(TreeView SelectedNode FullPath)
SelectedNode 属性 获取或设置当前在树视图控件中选定的树节点 如果没有选定任何节点 则 SelectedNode 属性则为Nothing
ShowLines 属性 指示是否在树视图控件中的树节点之间绘制连线
ShowPlusMinus 属性 指示是否在包含子树节点的树节点旁显示加号 (+) 和减号 ( ) 按钮
ShowRootLines 属性 指示是否在树视图根处的树节点之间绘制连线
如下图二所示 为ShowLines 属性 ShowPlusMinus 属性 ShowRootLines 属性都设置为True的情形
二 为TreeView 控件添加节点
TreeView 控件的 Nodes 属性包含了它所有的节点 下面我们就来了解如何为树状控件添加节点
通过树节点编辑器添加
选中TreeView 控件 在它的属性对话框中找到Nodes 属性 然后单击它后面的省略号 弹出 树节点编辑器 如下图三所示
然后通过编辑器上的 添加根 来添加根节点 通过 添加子级 来为选中的节点添加子节点 通过 删除 来删除选定的节点 标签 输入框确定节点的名称 注意 只有设置了TreeView 控件的ImageList 属性才能选择设置节点的图像
通过编程方式添加节点
给TreeView添加结点用到的是 Nodes Add 方法 首先选定要添加子结点的结点才能应用这个方法
TreeView中的结点的组织关系是父结点管理子结点的关系 也就是说 子结点组成的集合就是父结点的 Nodes 属性 子结点的 Index 属性 是根据其在子结点集合中的位置而决定的 而不是整棵树中结点的位置 根据这个特点 若想找到指定结点须按以下的语法
TreeViewName Nodes Item(Index ) Nodes
而添加结点的方法为
TreeViewName Nodes Item(Index ) Nodes Add( NodeText )或
TreeViewName Nodes Item(Index ) Nodes Add( objNode )
如下代码所示为选中的节点添加一个子节点
TreeView SelectedNode Nodes Add( )
编程删除节点
使用Nodes属性的Remove 方法删除单个节点 也可以使用Clear 方法清除所有的节点 如下代码所示
删除选定的节点
TreeView Nodes Remove(TreeView SelectedNode)
清除TreeView 控件的所有节点
TreeView Nodes Clear()
示例演示
我们现在用一个实例来看如何使用Nodes属性来实现代码编程添加删除树形控件的节点 首先为设计如下图四所示的程序界面 其中有四个Button 控件 一个TreeView 控件
为 添加根节点 按钮添加如下代码
TreeView Nodes Add( 根节点 (TreeView GetNodeCount(False) + ))
注意 GetNodeCount方法为获得本级别的节点数 可以通过参数False来指定不包括它的子节点
为 添加子节点 按钮添加如下代码
Dim node As TreeNode = TreeView SelectedNode
If Not node Is Nothing Then
node Nodes Add( 子节点 (node GetNodeCount(False) + ))
Else
MessageBox Show( 没有选中任何节点 )
End If
注意 TreeNode GetNodeCount 方法返回的是分配给 Nodes 集合的子树节点的数目
为 删除单个节点 按钮添加代码
Dim node As TreeNode = TreeView SelectedNode
If node Is Nothing Then
MessageBox Show( 没有选中任何节点 )
Else
TreeView Nodes Remove(node)
End If
为 删除所有节点 按钮添加代码
TreeView Nodes Clear()
代码添加完毕后 运行程序 分别使用 添加根节点 添加子节点 为控件添加节点 如下图五所示
然后再试验删除节点的效果
三 访问控件的所有节点
因为Nodes集合中所包含的只是本级节点的集合 如果某个Node包含有子节点 并不会从当前的Nodes体现出来 如下代码所示 我们只能访问到所有的根节点而不是所有的节点
假定我们是在前面示例的基础上添加一个名为 遍历节点 的按钮 然后在该按钮的Click事件中添加如下代码
Dim node As TreeNode
Dim str As String =
For Each node In TreeView Nodes
str = str node Text vbCr
Next
MessageBox Show(str)
node = Nothing
运行后 先分别为控件添加若干个根节点与子节点 然后单击 遍历节点 按钮 效果如下图六所示
很明显 我们遍历了Nodes集合 但是并没有如期访问到子节点 怎么解决这个问题呢?请看下一页
如上页的问题 我们假设一个根节点的Nodes集合为Nodes 该集合中的一个Node节点为Node Node 下有若干个子节点 我们把它的子节点的集合称为Nodes 我们用For Each 遍历Nodes 时 它访问到Node 但不会访问Nodes 集合
如果我们要访问Nodes 就需要像遍历Nodes 一样遍历Nodes 解决办法如下
首先 建立一个过程用于遍历一个Node节点下的子节点
Private Sub PrintNode(ByVal N As TreeNode)
Debug WriteLine(N Text)
Dim node As TreeNode
For Each node In N Nodes
PrintNode(node)
Next
End Sub
然后把 遍历节点 的Click事件中修改为如下代码
Dim node As TreeNode
For Each node In TreeView Nodes
PrintNode(node)
Next
node = Nothing
运行后 先分别为控件添加若干个根节点与子节点 然后单击 遍历节点 按钮 然后查看 输出 窗口 效果如下图七所示
可以发现已经能真正地遍历了所有节点
lishixinzhi/Article/program/net/201311/11617
我们先简单的了解一下什么是消息队列(MSMQ)?消息队列是 Windows (NT也有MSMQ WIN / /me/xp不含消息队列服务但是支持客户端的运行)操作系统中通讯的基础 也是用于创建分布式 松散连接通讯应用程序的工具 这些应用程序可以通过不同种类的网络进行通讯 也可以与脱机的计算机通讯 消息队列分为用户创建队列和系统队列 用户队列分为
· 公共队列 在整个可传递消息的 消息队列 网络中复制并传输 并且有可能由网络连接的所有站点访问
· 专用队列 不在整个网络中发布 相反 它们仅在所驻留的本地计算机上可用 专用队列只能由知道队列的完整路径名或标签的应用程序访问
· 管理队列 包含确认在给定 消息队列 网络中发送的消息回执的消息 指定希望 MessageQueue 组件使用的管理队列
· 响应队列 包含目标应用程序接收到消息时返回给发送应用程序的响应消息 指定希望 MessageQueue 组件使用的响应队列
系统队列分为
· 日记队列 可选地存储发送消息的副本和从队列中移除的消息副本
· 死信队列 存储无法传递或已过期的消息的副本
· 专用系统队列 是一系列存储系统执行消息处理操作所需的管理和通知消息的专用队列
现在大家对消息队列有了简单的了解后 就该进入主题了 要使用m *** q进行软件开发需要安装m *** q 安装完后就该进入实际的开发阶段 先打开vs net ide中的 服务起资源管理器 展开你想建立消息队列的计算机名 再展开 消息队列 右击它在弹出菜单中选择 新建 建立一个新的消息队列 并为它指定一个名字 这个名字可以随意 也可以通过编程来完成 代码如下
system Messaging MessageQueue Create( \Private$\MyPrivateQueue ) 建立专用队列System Messaging MessageQueue Create( myMachine\MyQueue ) 建立公共队列
其实我认为使用那中方法并不重要 重要的是搞清楚专用队列和公共队列的差别(其他队列不是必须的) 在本例中是通过 服务器资源管理器 分别在服务器上建立了专用队列和公共队列
程序功能 本程序分为两部分包括服务器程序(安装在sql server服务器上)和客户端程序 客户端的作用是用来编写t sql语句并将t sql语句放在消息中 并将消息发送到sql server服务器上的消息队列中去 服务器程序检查指定的消息队列当发现有新消息到达时 就开始执行消息中的内容 由于消息中的内容是t sql语句所以服务器端实际上是执行对数据库的操作
客户端程序
public Sub client()Dim tM As New System Messaging MessageQueue()tM Path = \Private$\jk FORMATNAME:PUBLIC= d dc c fd ce d b e d 与指定计算机中的消息队列建立连接 Dim newMessage As New System Messaging Message(TextBox Text) 接受文本筐的t sql语句newMessage Label = This is the label 消息名字 tM Send(newMessage) 发送消息End Sub
服务端程序
public Sub server()Dim NewQueue As New System Messaging MessageQueue( \Private$\jk ) FORMATNAME:PUBLIC= d dc c fd ce d b e d 与指定计算机中的消息队列建立连接 Dim m As System Messaging Message 查看消息队列中的消息m = NewQueue Receive m Formatter = New System Messaging XmlMessageFormatter(New String() { System String mscorlib })Dim st As Stringst = m Body 消息队列中消息的消息内容 既sql语句Dim con As New OleDb OleDbConnection( 输入自己的数据库连接字符串 )con Open()Dim As New OleDb OleDbCommand(st con) 执行消息中的sql语句 ExecuteNonQuery()con Close()End Sub
我为什么要使用消息队列来处理数据库的操作这个问题我一直没回答 现在我就来回答这个问题 在本程序中你会发现在sub client()中我并没连接数据库和请求数据 而是通过发消息来操作数据库的 这个好处是节省了两部分时间
对数据库连解请求数据的时间
从数据库返回数据的时间
在很多情况下其实我们并不需要看见具体的数据就知道该怎么修改数据库中的数据 例如要删除张三的记录 就可以将一条简单的删除语句放入消息中 发给服务器让服务器程序去处理对数据的更改
此外消息队列的另一个主要用途也就是当前erp软件中必不可少的 就是在断开连接时保存信息 当连接恢复时发送消息 消息在如下两种情况中无法迅速地传递到它们的队列 当队列驻留的计算机无法工作时 或当路由消息所需的域控制器无法工作时 消息队列 可让您应对这些情况 使得在从网络上断开连接或必要的计算机或控制器无法工作时 仍可以继续发送消息 在这些情形下 消息暂时存储在本地计算机或传递路由上的某个计算机的队列中 直到完成传递所需的资源重新联机
例如 假设有一个记录所有在出差的销售人员发送的订单的中央队列 这些销售人员每天的大部分时间都以断开连接的方式工作 记录来自客户站点的订单信息 并且每天拨号连接一次 将所有这些信息传输到中央队列中 因为消息在发送方断开连接时仍可发送到队列 所以销售人员可以在记录客户信息时立即发送他们的消息 但系统会缓存这些消息直到晚间进行拨号连接为止
在断开连接时要怎么保存消息呢?向断开连接的队列发送消息同向可用队列发送消息的过程几乎完全相同 当要向其发送的队列不可用时 不必进行任何特殊的配置以使组件将消息存储在临时队列中 在client代码的tM Path = \Private$\jk 后面有一条注释语句 其实这条语句就是实现向断开连接的队列发送消息的功能 只要将tM Path = \Private$\jk 这条语句换成tM Path = FORMATNAME:PUBLIC= d dc c fd ce d b e d 其中PUBLIC后面的数字是要发送到计算机的guid数字 这个数字可以打开那台计算机的消息队列的属性看见 使用这种方法就可以在断开连接的情况下保证对服务器的操作是有效 现在运行这个程序后 打开win 中的 开始 》 程序 》 管理工具 》 计算机管理 在 计算机管理 窗口中展开 服务和应用程序 》 消息队列 》 传出队列 你将在右边的窗口中看见你建立的消息 (如果你使用tM Path = \Private$\jk 语句 在 计算机管理 窗口中展开 服务和应用程序 》 消息队列 》 专用队列 可以看见你建立的队列 )
其实消息队列的编程并不复杂 但它在网络环境的程序开发中是非常有用的 可以简化大量的开发过程和节省开发时间
其实消息队列的编程有很大的灵活性 几乎可以解决网络编程的大部分问题 比如聊天程序 远程控制程序
本文针对消息队列做了一个简单的介绍 并举了一个例来说明怎么在 net下使用消息编程 达到快速高效稳定的对数据库进行操作 最后补充要说的是在internet中也一样可以使用消息队列 只需要将tM Path = FORMATNAME:PUBLIC= d dc c fd ce d b e d 语句后面的数字变成消息队列所在服务器的数字就可以了 但是要提醒大家的是使用消息在传输时将占有大量的带宽 所以在不是必须的时候 internet下的编程不要使用消息
lishixinzhi/Article/program/net/201311/15668
修改图片文件名(有些名可以不认),确保图片文件路径正确。
如果是网页从样式种选择背景
如果是应用程序从image导入背景
VB.NET中的变量在使用前要进行声明。即便不进行显式声明,VB也会进行隐式声明。
本题中应该这样使用:
Dim a1 As String = TextBox1.Text
System.Diagnostics.Process.Start("IExplore.exe", a1)
变量是存储值的名称。可使用变量来存储数字,例如建筑物的高度,或者存储单词,例如人的名字。简单地说,可使用变量表示程序所需的任何信息。
你可能会问:“既然我可以使用信息,为什么要用变量?” 正如其名称所表示的,变量可以随着程序的运行而改变其表示的值。例如,您可以写一个程序来跟踪桌子上罐里的软心豆粒糖的数目。因为糖是要被吃掉的,所以罐里软心豆粒糖的数目可能会随着时间的推移而改变。您可以使用一个可随时间变化的变量来表示软心豆粒糖的数目,而无需在每次想吃糖时重新编写程序。
你可以这样的解决你的问题:
(我用的是vs。net2005)
button1.backcolor=transprent
这样你自己好好的试一试吧,我试了一下,感觉不错。