窗体最大化按钮,按下后如何控制窗体大小(vb.net)
问题:现在有一个form,并且没有禁止掉“最大化”按钮。但是,当我按下后,不想让窗体全屏(例如:想保持窗体高度,只让宽度改变。为了排版的目的)。我在类似form_Resi...
问题:现在有一个form,并且没有禁止掉“最大化”按钮。但是,当我按下后,不想让窗体全屏(例如:想保持窗体高度,只让宽度改变。为了排版的目的)。我在类似form_Resize()事件中,拿Me.WindowState = FormWindowState.Maximized判断是不行的,实际上窗体已经“画”出来了(即:全屏)。
网上说要重载WndProc()方法,利用消息处理来解决。在vb.net里具体如何使用WndProc(),小弟不清楚。望各位帮帮,谢谢。 展开
网上说要重载WndProc()方法,利用消息处理来解决。在vb.net里具体如何使用WndProc(),小弟不清楚。望各位帮帮,谢谢。 展开
展开全部
前几天的时候我帮人解决过这个问题,现在又出来了.
在form_Resize()事件 里判断窗口是不是最大化了 就行了,然后在把窗体大小调到自己的指定大小..
下面是我给你写的VB代码( 我没有.net编译器,不过相信你很容易就看懂了,我给你写上注释)
补充:刚才测试时有点小错误,现在更正好了.o(∩_∩)o...
Private kuandu As Long, gaodu As Long
Private Sub Form_Load()
'//将启动窗体的宽 ,高属性 赋值给全局变量
kuandu = Me.Width
gaodu = Me.Height
End Sub
Private Sub Form_Resize()
'//Resize()事件中如果最大化就会出错.错误号是384
On Error GoTo Errhandle
If Me.WindowState = 2 Then
Me.Left = 0
Me.Top = 0
Me.Width = Screen.Width '//只进行宽度变化
Me.Height = gaodu '//高度不变化
End If
Exit Sub
Errhandle:
If Err.Number = "384" Then '.net的我不知道是不是384
Me.WindowState = 0
Me.Left = 0
'Me.Top = 0
Me.Width = Screen.Width '//只进行宽度变化
Me.Height = gaodu '//高度不变化
End If
End Sub
在form_Resize()事件 里判断窗口是不是最大化了 就行了,然后在把窗体大小调到自己的指定大小..
下面是我给你写的VB代码( 我没有.net编译器,不过相信你很容易就看懂了,我给你写上注释)
补充:刚才测试时有点小错误,现在更正好了.o(∩_∩)o...
Private kuandu As Long, gaodu As Long
Private Sub Form_Load()
'//将启动窗体的宽 ,高属性 赋值给全局变量
kuandu = Me.Width
gaodu = Me.Height
End Sub
Private Sub Form_Resize()
'//Resize()事件中如果最大化就会出错.错误号是384
On Error GoTo Errhandle
If Me.WindowState = 2 Then
Me.Left = 0
Me.Top = 0
Me.Width = Screen.Width '//只进行宽度变化
Me.Height = gaodu '//高度不变化
End If
Exit Sub
Errhandle:
If Err.Number = "384" Then '.net的我不知道是不是384
Me.WindowState = 0
Me.Left = 0
'Me.Top = 0
Me.Width = Screen.Width '//只进行宽度变化
Me.Height = gaodu '//高度不变化
End If
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询