vb.net图标拖动 vb中怎么移动标签

VB.NET的ListBox怎样实现项目可以拖动追问:额,没有学过C#回答:一样的Imports System.Drawing Imports System.Collections Imports System.ComponentModel Imports System.Windows.Forms Imports System.Data Namespace WindowsApplication2 Public Class Form1 Inherits System.Windows.Forms.Form Private listBox1 As System.Windows.Forms.ListBox Private indexofsource As Integer '拖动的起始索引 Private indexoftarget As Integer '拖动的结束索引 Private components As System.ComponentModel.Container = Nothing Public Sub New() InitializeComponent() End Sub Protected Overrides Sub Dispose(disposing As Boolean) If disposing Then If components IsNot Nothing Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Private Sub InitializeComponent() Me.listBox1 = New System.Windows.Forms.ListBox() Me.SuspendLayout() ' ' listBox1 ' Me.listBox1.AllowDrop = True '这个属性一定要设置为true; Me.listBox1.ItemHeight = 12 Me.listBox1.Items.AddRange(New Object() {"1", "2", "3", "4", "5", "6", _ "7", "8", "9", "0"}) Me.listBox1.Location = New System.Drawing.Point(16, 8) Me.listBox1.Name = "listBox1" Me.listBox1.ScrollAlwaysVisible = True Me.listBox1.Size = New System.Drawing.Size(264, 136) Me.listBox1.TabIndex = 0 AddHandler Me.listBox1.MouseDown, New System.Windows.Forms.MouseEventHandler(AddressOf Me.listBox1_MouseDown) AddHandler Me.listBox1.DragOver, New System.Windows.Forms.DragEventHandler(AddressOf Me.listBox1_DragOver) AddHandler Me.listBox1.DragDrop, New System.Windows.Forms.DragEventHandler(AddressOf Me.listBox1_DragDrop) Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) Me.ClientSize = New System.Drawing.Size(292, 273) Me.Controls.Add(Me.listBox1) Me.Name = "Form1" Me.Text = "Form1" Me.ResumeLayout(False) End Sub STAThread _ Private Shared Sub Main() Application.Run(New Form1()) End Sub Private Sub listBox1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) indexofsource = DirectCast(sender, ListBox).IndexFromPoint(e.X, e.Y) If indexofsourceListBox.NoMatches Then DirectCast(sender, ListBox).DoDragDrop(DirectCast(sender, ListBox).Items(indexofsource).ToString(), DragDropEffects.All) End If End Sub Private Sub listBox1_DragOver(sender As Object, e As System.Windows.Forms.DragEventArgs) '拖动源和放置的目的地一定是一个ListBox If e.Data.GetDataPresent(GetType(System.String)) AndAlso DirectCast(sender, ListBox).Equals(listBox1) Then e.Effect = DragDropEffects.Move Else e.Effect = DragDropEffects.None End If End Sub Private Sub listBox1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Dim listbox__1 As ListBox = DirectCast(sender, ListBox) indexoftarget = listbox__1.IndexFromPoint(listbox__1.PointToClient(New Point(e.X, e.Y))) If indexoftargetListBox.NoMatches Then Dim temp As String = listbox__1.Items(indexoftarget).ToString() listbox__1.Items(indexoftarget) = listbox__1.Items(indexofsource) listbox__1.Items(indexofsource) = temp listbox__1.SelectedIndex = indexoftarget End If End Sub End Class End Namespace
vb.net 拖盘图标怎么创建鼠标拖放事件(dragdrop)?【vb.net图标拖动 vb中怎么移动标签】托盘图标本身不支持鼠标鼠标拖放vb.net图标拖动,也没人把用这功能 , 你有操作有些怪,不符合正常vb.net图标拖动的操作习惯 。程序的编写最好与平时的正常操作习惯相联系 , 不建议使用 。
技术追求另当别论 。我认为最简单的办法是相办法做个无边窗体停在托盘上方,接受拖放 。要不就得去查一大堆APIvb.net图标拖动了 。
VB.NET怎么可以限制窗体不能被鼠标随便拖动位置很简单,通过WindowsAPI,删除窗体菜单项就行了
首先在窗体类中声明API:
Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
Declare Function RemoveMenu Lib "user32" (ByVal lngHmenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
其次声明API参数常量:
Const MF_BYPOSITION As Integer = H400
然后在窗体类中写入过程:
Private Sub UserForm_Initialize_stopmove() '禁止窗体移动
Dim lngHwnd As IntPtr
Dim lngHmenu As IntPtr
lngHwnd = Me.Handle
If lngHwnd0 Then
lngHmenu = GetSystemMenu(lngHwnd, False)
RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0代表菜单中从上往下数第一个菜单项
End If
End Sub
Private Sub UserForm_Initialize_onmove() '恢复窗体移动
Dim lngHwnd As IntPtr
Dim lngHmenu As IntPtr
lngHwnd = Me.Handle
If lngHwnd0 Then
lngHmenu = GetSystemMenu(lngHwnd, True)
RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0与禁止代码中的数值同步,原因时虽然表面上删除了菜单项 , 实则为隐藏了菜单项 , 各个菜单的索引值并没有变 , 所以0依然代表初始菜单的第一个菜单项 , 即被删除的那个菜单项
End If
End Sub
然后如果你的窗口菜单是动态变化的 , 建议声明常数:
Const MF_BYPOSITION As Integer = H0
然后使用相关的Windows功能的常数进行删除菜单 。常数需要自行查看winuser.h头文件
如果找不到该头文件,可以看这里:网页链接
其余信息详见MSDN:网页链接
最后说一下,不建议前面网友说的重写WndProc的方法,因为这样拦截标题栏点击消息会导致窗体本身的菜单也无法显示出来 , 有损窗体功能,并且像双击左上角图标关闭窗体这样的功能也会跟着拦截消息的操作一起被吞掉 。
VB.NET的form已经设置最大最小尺寸为同一个值,如何防止鼠标移到边缘还显示可以移动的图标?两种办法,一种是 使用windows api 接获相关msg 进行忽略处理 , 第二种就是 窗体样式 选择NONE 然后自己画 需要的样式 鼠标移动到窗体边缘就不会显示可以移动了
如何在VB.net中用程序控制鼠标移动和点击调用api
在Visual Baisc.net中的声明:
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = H2 '模拟鼠标左键按下
Public Const MOUSEEVENTF_LEFTUP = H4 ’模拟鼠标左键释放
Public Const MOUSEEVENTF_MIDDLEDOWN = H20 '模拟鼠标中间键按下
Public Const MOUSEEVENTF_MIDDLEUP = H40 '模拟鼠标中间键释放
Public Const MOUSEEVENTF_RIGHTDOWN = H8 '模拟鼠标右键按下
Public Const MOUSEEVENTF_RIGHTUP = H10 '模拟鼠标右键释放
Public Const MOUSEEVENTF_MOVE = H1 '模拟鼠标指针移动
例:
mouse_event MOUSEEVENTF_LEFTDOWN,10,10,0,0
'在(10 , 10)模拟鼠标左键按下
VB.net怎么实现运行时鼠标拖动改变控件的大小啊控件是可以显示在里面的,你只要加个label,把label的属性设为visualble=fause就行 。设置鼠标经过头像的mouseHover和mouseLeave事件,当mouseHover时label的属性visualble=true,当mouseLeave时label的属性visualble=fause即可 。窗体的鼠标事件可以设置控件的cursor属性,里面可以选择许多种鼠标图形 。只要是正常的Form都可以改变窗体大?。?但是无边框的窗体只能用函数改变或者设置属性,在debug后是不能改变的 。拖动窗体需要在窗体的load时间里面写入当鼠标单击不放时的事件即可,不难 。
关于vb.net图标拖动和vb中怎么移动标签的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读