正文
vb.net的消息泵 vbs弹出消息框的代码
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
VB.NET中msgbox()和messagebox.show()功能上是一样的吗?
2个函数的参数不一样 msgbox是vb6的 messagebox.show是vb.net的 基本功能都是一样的
vb.net可能就多一个文本的排列方式 左右对齐 msgbox 没有
NET中的三种Timer的区别和用法
在.NET1.1里面,第3个System.Timers.Timer,也是可以拖拽使用,而.NET2.0开始取消了,只能手动编写代码。而后2个没有限制制。操作方法如下:
1、首先使用RadTileList控件,TileRows="3" 三行,SelectionMode="Multiple" 多选。
2、前台添加一个块状元素,鼠标移动到块状元素显示另一张图片。
3、运行程序显示内容。
4、接着EnableDragAndDrop="true" 添加第二个块元素,并使块元素可拖拽。
5、最后运行程序看看生成的页面。
在VB.NET中实现文件的拖放
本文介绍vb.net的消息泵了在VB NET中如何实现接受拖放的文件 即从资源管理器中拖放到应用程序中的时候 自动获取拖放的文件 文中的例子是一个接受拖放文件显示文件内容的VB NET实例程序 引言
对于文本格式的文件 我们可以直接拖到记事本中就可以看到内容 各种类型的图片 拖到Photoshop中 就可以直接对其编辑 我们如何在VB NET开发的程序也实现上述效果呢vb.net的消息泵?
思路
我们知道 每一个Windows的应用程序都有一个消息队列 程序的主体接受系统的消息 然后分发出去(给一个form 或者一个控件) 接受者有相应的程序来处理消息 在 NET的Form中 默认情况下程序是不翻译这些消息的 也就是说默认我们的Class是不加入应用程序的消息泵 能不能把我们的Form Class加入应用程序的消息泵呢?可以vb.net的消息泵!
在 NET中 任何一个实现IMessageFilter 接口的类 可以添加到应用程序的消息泵中 以在消息被调度到控件或窗体之前将它筛选出来或执行其他操作 使用 Application 类中的 AddMessageFilter 方法 可以将消息筛选器添加到应用程序的消息泵中
于是我们在程序加载的时候 调用Application AddMessageFilter(Me) 然而 默认情况下一个Form或者控件是不能接受拖放的文件的 我们调用一个WIN API DragAcceptFiles源码天空 这个API可以设置对应的控件是否能接受拖放的文件 然后可以用DragQueryFile查询拖放到的文件列表 也就是拖放文件地具体路径和文件名
代码
Imports System Runtime InteropServices
Public Class Form
Inherits System Windows Forms Form
Implements IMessageFilter
API申明
Const WM_DROPFILES = H 拖放文件消息
DllImport( shell dll ) Public Shared Sub DragFinish(ByVal hDrop As Integer)
End Sub
DllImport( shell dll ) Public Shared Sub DragAcceptFiles(ByVal hwnd As Integer ByVal fAccept As Boolean)
End Sub
DllImport( shell dll ) Public Shared Function DragQueryFile(ByVal HDROP As Integer ByVal UINT As Integer ByVal lpStr As System Text StringBuilder ByVal ch As Integer) As Integer
End Function
Private Sub Form _Load(ByVal sender As System Object ByVal e As System EventArgs) Handles MyBase Load
Application AddMessageFilter(Me)
DragAcceptFiles(TextBox Handle ToInt True)
End Sub
Function PreFilterMessage(ByRef m As Message) As Boolean Implements IMessageFilter PreFilterMessage
If m Msg = WM_DROPFILES Then
设置拖放的动作
Dim nfiles As Int
nfiles = DragQueryFile(m WParam ToInt Nothing )
Dim i As Int
Dim *** As New System Text StringBuilder( )
Dim sFirstFileName As String 记录第一个文件名
TextBox Clear()
For i = To nfiles
DragQueryFile(m WParam ToInt i *** )
If i = Then sFirstFileName = *** ToString
TextBox AppendText(ControlChars CrLf *** ToString)
Next
DragFinish(m WParam ToInt ) 拖放完成
显示文件内容
Dim fs As New System IO FileStream(sFirstFileName IO FileMode Open)
Dim sr As New System IO StreamReader(fs System Text Encoding GetEncoding( gb ))
TextBox AppendText(ControlChars CrLf sr ReadToEnd() ToString)
fs Close()
sr Close()
End If
Return False
End Function
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (ponents Is Nothing) Then
ponents Dispose()
End If
End If
Application RemoveMessageFilter(Me)
DragAcceptFiles(TextBox Handle ToInt False)
MyBase Dispose(disposing)
End Sub
lishixinzhi/Article/program/net/201311/13043
vbnet中类里面的方法可以返回
subabc(x,y,z)的方法来调用返回。
sub可以使用subabc(x,y,z)的方法来调用,其中的x,y,z可以是传入值,也可以是返回值,当然也可以不返,如subabc()Function可以使用functionabc(x,y,z)的方法来调用同,其中x,y,z为传入值,Function与sub最大的差别是Function可以使用函数体来返回值。
VisualBasic.NET是基于微软.NETFramework之上的面向对象的编程语言。
vb.net64位进程能调用32位dll吗
这个可以调用32位dllvb.net的消息泵,操作流程如下vb.net的消息泵:
1、创建一个进程外com服务器(exe)。
2、将32位dllvb.net的消息泵的接口函数封装为COM服务器的相关接口。
3、注册com服务器*.exe/regserver(注销*.exe/unregserver)。
4、64位进程调用32位com服务器接口vb.net的消息泵,成功。
vb.net登陆界面中当login验证后进入main窗体时怎样关闭login窗体
您可以调用Me.Hide()方法隐藏Login窗体。
另外,如果您使用新建工程后的那个默认窗体作为Login窗体,那么您只能隐藏这个窗体或修改程序的启动对象。因为VB.net默认将创建工程时的那个默认窗体作为程序的主窗体,应用程序的主消息循环就建立在这个窗体上,如果您关闭这个窗体,那么所有的消息泵都会停止,应用程序就会退出。
我比较推荐您将Main窗体设为应用程序的主窗体,这样可以减小资源的占用,当Login完成后就可以释放Login窗体了。
另外,vb.net中的me变量相当于C语言中的this指针,它指向当前类。
推荐一个网站,这个网站有很多的教程,而且基本都是附部分代码,可能有一些对您有用的信息。
vb.net的消息泵的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vbs弹出消息框的代码、vb.net的消息泵的信息别忘了在本站进行查找喔。