前几天的时候我帮人解决过这个问题,现在又出来了.
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了乡宁免费建站欢迎大家使用!
在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
很简单
菜单的代码可以这样,不会重复打开,第一点击的时候弹出窗体,下次打开就最大化:
If F1.Visible = True Then
F1.WindowState = FormWindowState.Maximized
Else
F1.Show()
End If
选中空间,把它的DOCK属性改成Top,Fill```属性即可随着窗体自动变动大小了
这个问题,如有可能你应当先把大的控件停靠在窗体的某部分,其他的控件用form的resize事件触发控件宽高的数值或控件位置坐标的数值。例:
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Dim pLabel1, pTextBox1, pButton1 As New Point
pLabel1.X = CInt(Me.Width / 7)
pLabel1.Y = CInt(Me.Height / 8) + 4
pTextBox1.X = CInt(Me.Width / 5)
pTextBox1.Y = CInt(Me.Height / 8)
pButton1.X = CInt(Me.Width / 3)
pButton1.Y = CInt(Me.Height / 8) - 1
Me.Label1.Location = pLabel1
Me.TextBox1.Location = pTextBox1
Me.Button1.Location = pButton1
End Sub
以上只是改变了控件的位置,如需改变控件的大小,重新定义计算控件的size属性
vb.net在窗体设计时不可以最大化,但可以通过手动调整Size属性来模仿最大化,vb.net也没有像VB6的窗体布局窗口,可以通过更改StartPosition属性来实现
StartPosition取值范围:
CenterParent:在父窗口的中心
CenterScreen:在屏幕中心
Manual:Location属性中定义的坐标
WindowsDefaultBounds:Windows默认位置
WindowsDefaultLocation:Windows默认位置,并且包括大小设置为默认