网站建设资讯

NEWS

网站建设资讯

vb.net自动调整窗口,vb怎么调出属性窗口

急!!在VB.NET中窗口位置调整问题!!!!

'点击窗口的任何位置拖动窗体

创新互联企业建站,十年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于网站设计制作、成都网站设计中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。

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.Left + X - ctX

Me.Top = Me.Top + Y - ctY

End If

End Sub

VB.NET鼠标拖动无边框窗体改变窗体大小

在VB中,BorderStyle属性为0的窗体没有边框,并且也没有与边框相关的元素。这种窗体具有简洁、占用空间少等优点,用它可以设计出某些富有个性的窗体。但是,由于它没有标题栏,窗体不能移动,同时也不能改变大小,在某些情况下会给使用者造成一定的麻烦。本文介绍在VB中如何用API函数操作无边框窗体。

移动窗体

新建一标准工程,设置Form1的BorderStyle属性为0。此时运行程序后,无法移动窗体。为能移动窗体,在Form1的代码窗口声明下列函数和常数:

Option Explicit

Private Declare Function ReleaseCapture Lib “user32” ()AsLong

Private Declare Function SendMessage Lib “user32”Alias“SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long,

ByVal wParam As Long, lParam As Any) As Long

Const WM_SYSCOMMAND = H112

Const SC_MOVE = HF012

在Form_MouseDown事件中输入以下代码:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer,XAs Single, Y As Single)

按下鼠标左键

If Button = vbcenterButton Then

为当前的应用程序释放鼠标捕获

ReleaseCapture

移动窗体

SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MOVE, 0

End If

End Sub

注意:此时窗体上不能放置除Shape控件以外的任何控件,否则,在被控件遮住的地方点按鼠标还是无法移动窗体。要使点按控件也能移动窗体,需再添加一个该控件的MouseDown事件过程,代码与上述过程代码相似。

改变窗体的大小

为了改变窗体的大小,需要添加一个Timer控件,以定时捕获鼠标在窗体中的位置。当鼠标位于窗体边缘时,改变鼠标的形状,以通知用户可以进行改变大小的操作。为此,将Timer控件的Interval属性设为100(即每过100毫秒检测一下鼠标位置),其他取默认值。

在Form1的代码窗口中再添加下列两个函数,并定义两个自定义变量和一个字符串变量:

取得窗体位置的函数

Private Declare Function GetWindowRect Lib “user32” (ByVal hwndAsLong, lpRect As RECT) As Long

取得鼠标位置的函数

Private Declare Function GetCursorPos Lib “user32” (lpPointAsPOINTAPI) As Long

鼠标位置变量

Private Type POINTAPI

x As Long

y As Long

End Type

窗体位置变量

Private Type RECT

center As Long

Top As Long

center As Long

Bottom As Long

End Type

所要执行的动作变量,是移动还是改变大小及从哪个方向改变大小

Dim Action As String

在Timer1控件的Timer事件过程中添加以下代码:

Private Sub Timer1_Timer()

Dim MyRect As RECT

Dim MyPoint As POINTAPI

MyRect返回当前窗口位置

Call GetWindowRect(Me.hwnd, MyRect)

MyPoint返回当前鼠标位置

Call GetCursorPos(MyPoint)

Select Case True

鼠标位于窗体左上方

Case MyPoint.x MyRect.center + 5 And MyPoint.y ="" p=""

Screen.MousePointer = vbSizeNWSE

Action = “centerUp”

鼠标位于窗体右下方

Case MyPoint.x MyRect.center - 5 And MyPoint.yMyRect.Bottom - 5

Screen.MousePointer = vbSizeNWSE

Action = “centerDown”

鼠标位于窗体右上方

Case MyPoint.x MyRect.center - 5 And MyPoint.y="" p="" +=""

’45度双向鼠标指针

Screen.MousePointer = vbSizeNESW

Action = “centerUp”

鼠标位于窗体左下方

Case MyPoint.x MyRect.center + 5 And MyPoint.yMyRect.Bottom - 5

Screen.MousePointer = vbSizeNESW

Action = “centerDown”

鼠标位于窗体左边

Case MyPoint.x MyRect.center + 5

水平双向鼠标指针

Screen.MousePointer = vbSizeWE

Action = “center”

鼠标位于窗体右边热门推荐: C++程序设计之四书五经 谈谈JAVA程序的反编译1 2

MyRect.center - 5

Screen.MousePointer = vbSizeWE

Action = “center”

鼠标位于窗体上方

Case MyPoint.y MyRect.Top + 5

垂直双向鼠标指针

Screen.MousePointer = vbSizeNS

Action = “Up”

鼠标位于窗体下方

Case MyPoint.y MyRect.Bottom - 5

Screen.MousePointer = vbSizeNS

Action = “Down”

鼠标位于窗体其他位置

Case Else

默认鼠标指针

Screen.MousePointer = 0

Action = “Move”

End Select

End Sub

当利用SendMessage函数由系统向窗口发送改变大小的信息时,只要将上面移动窗体的语句“SendMessageMe.hwnd,WM_SYSCOMMAND, SC_MOVE, 0”中的第3个参数改为相应的常数即可。

VB中HF001~HF008分别是从左、右、上、左上、右上、下、左下、右下8个方向改变窗体大小的常数。结合移动窗体的代码,将上述Form_MouseDown事件的代码综合如下(也可以把这8个常数声明为自定义常数):

Private Sub Form_MouseDown(Button As Integer, Shift As Integer,xAs Single, y As Single)

按下鼠标左键

If Button = vbcenterButton Then

为当前的应用程序释放鼠标捕获

ReleaseCapture

Select Case Action

Case “center”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF001, 0

Case “center”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF002, 0

Case “Up”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF003, 0

Case “centerUp”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF004, 0

Case “centerUp”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF005, 0

Case “Down”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF006, 0

Case “centerDown”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF007, 0

Case “centerDown”

SendMessage Me.hwnd, WM_SYSCOMMAND, HF008, 0

Case “Move”

SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MOVE, 0

End Select

End If

End Sub

vb.net 如何使得控件随着窗体大小 的改变而改变呢,大家帮忙给想想,最好有代码的哦

Public Class Form1

Dim 初始化控件自动大小调整与窗口的宽度比例 As Integer

Dim 初始化控件自动大小调整与窗口的高度比例 As Integer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

初始化控件自动大小调整与窗口的宽度比例 = Me.Width / 控件自动大小调整.Width

初始化控件自动大小调整与窗口的高度比例 = Me.Height / 控件自动大小调整.Height

显示控件的位置坐标()

End Sub

Private Sub Form1_ResizeEnd(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ResizeEnd

' Form1_ResizeEnd  这个事件是 窗口大小变化完成后 再进行操作的

控件自动大小调整.Location = New Point(控件自动大小调整.Left, 控件自动大小调整.Top)

'设置控件的初始左位置坐标  与  上位置坐标

控件自动大小调整.Size = New Point(Int(Me.Width / 初始化控件自动大小调整与窗口的宽度比例), Int(Me.Height / 初始化控件自动大小调整与窗口的高度比例))

'更改控件的大小  按第一次窗口的比例 进行调整

显示控件的位置坐标()

End Sub

Private Sub 显示控件的位置坐标()

Label1.Text = "控件的上边距坐标: " 控件自动大小调整.Top

Label2.Text = "控件的左边距坐标: " 控件自动大小调整.Left

Label3.Text = "控件的宽度大小: " 控件自动大小调整.Width

Label4.Text = "控件的高度大小: " 控件自动大小调整.Height

End Sub

End Class

还有好多方法  慢慢研究吧兄弟 希望能帮到你

VS2013 VB.NET窗口控件怎么做自适应

窗体在改变大小时会有一个size事件的,在这个事件中写代码获取窗体的高度和宽度再根据窗体的高度和宽度的比例来效果自己的控件的高度宽度比例

急!VB.NET高手请帮帮忙!!怎么用代码调整窗口大小和移动窗口???

From1.Height = "100" '窗体高度

From1.Width = "100" '窗体宽度

From1.Location = New Point(500, 100) ’移动窗体(横坐标,纵坐标)

VB.net 控件的位置如何随窗口的变化而变化

两种方法,一种是固定窗口大小,一种是控件在窗口大小改变时,自动按窗口位置进行改变;

以上为个人看法,手打很辛苦,希望采纳,谢谢您的支持。

谢谢您的支持,有任何疑问欢迎您再次通过此渠道提问,让大家共同解决,共同进步!

以上回答仅为“百度规则”,没有任何违法行为,请楼主采纳,谢谢!


网站名称:vb.net自动调整窗口,vb怎么调出属性窗口
新闻来源:http://njwzjz.com/article/dsepggi.html