如何移动VB中的无边框窗体1、无边框窗体也就是无标题栏窗体vb.net移动窗口,对于这样vb.net移动窗口的窗体移动需要编程实现 。
2、vb有两种办法实现,一直接编程实现 , 二调用windows API编程实现 。
3、这里示例直接编程实现:
Option Explicit
Dim BolIsMove As Boolean, MousX As Long, MousY As Long
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then BolIsMove = True
MousX = X
MousY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim CurrX As Long, CurrY As Long
If BolIsMove Then
CurrX = Me.Left - MousXX
CurrY = Me.Top - MousYY
Me.Move CurrX, CurrY
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
BolIsMove = False
End Sub
VB.NET,有没有form窗口移动的事件?窗口一旦移动就执行第一步 , 点击VS工具
第二步 , 打开后,新建一个Windows窗体应用程序,新建完毕如图所示
第三步,请看右下方Form的属性栏
第四步,双击KeyDown
第五步,输入提示按键代码,如图所示
第六步 , 再次输入代码,设置属性KeyPreview为true
第七步,运行程序,按下举例F5,则会弹出提示,表明已经成功获取 。
急?。≡赩B.NET中窗口位置调整问题?。。。?/h2>'点击窗口的任何位置拖动窗体
Dim ctX As Single, ctY As Single
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ctX = X: ctY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Me.Left = Me.LeftX - ctX
Me.Top = Me.TopY - ctY
End If
End Sub
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 怎么让窗口随鼠标动新建一窗体FORM2,在原窗体FORM1的在mousemove事件中增加FORM2.left=XX,FORM2.TOP=YY.XX,yy是鼠标的坐标.
VB.NET如何实现移动一个窗口时如果靠近主窗口边缘就自动吸附?vs本身是用了类似DockPanel的组件 用于处理多文档编辑的UI环境...
如果想获得类似的组件wpf好像提供了现成的控件...
第三方的也可以使用dotnetbar组件...在.net 2.0环境下就可以用
【vb.net移动窗口 vb窗体移动代码】关于vb.net移动窗口和vb窗体移动代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 视频拍摄什么优先拍摄方式,视频拍摄顺序
- html文字跳转页面代码,html点击文字跳转设置超链接
- 能看奥运直播的手机是什么,用手机看奥运会直播的软件
- windows7系统奔溃的简单介绍
- CPU的主频代表CPU的什么能力,cpu主频是哪个
- sqlserver离线安装包,sqlserver2019离线安装
- 苹果手机怎么开启电脑直播,苹果手机用电脑直播手游怎么操作
- oracle怎么move Oracle怎么读
- 基于html5的学校毕业设计,基于html5的毕业设计题目