
正文
vb.netmdi窗体 vbs窗体
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VB中什么是MDI窗体
如果一个软件中有多个窗体,其中有一个为母窗体,即MDI窗体
在VB中可以添加MDI窗体,窗体颜色为深灰色。然后在其他子窗体中,设置MDIChild属性为True,这样,母窗体和子窗体的关系就建立起来了。
相关问答
Q1: VB.net怎么去掉MDI窗体立体边框
DllImport("user32.dll", ExactSpelling:=True) _
Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, _
ByVal uFlags As UInteger) As Integer
End Function
Private Const GWL_STYLE As Integer = -16
Private Const GWL_EXSTYLE As Integer = -20
Private Const WS_BORDER As Integer = H800000
Private Const WS_EX_CLIENTEDGE As Integer = H200
Private Const SWP_NOSIZE As UInteger = H1
Private Const SWP_NOMOVE As UInteger = H2
Private Const SWP_NOZORDER As UInteger = H4
Private Const SWP_NOREDRAW As UInteger = H8
Private Const SWP_NOACTIVATE As UInteger = H10
Private Const SWP_FRAMECHANGED As UInteger = H20
Private Const SWP_SHOWWINDOW As UInteger = H40
Private Const SWP_HIDEWINDOW As UInteger = H80
Private Const SWP_NOCOPYBITS As UInteger = H100
Private Const SWP_NOOWNERZORDER As UInteger = H200
Private Const SWP_NOSENDCHANGING As UInteger = H400
Public Sub ChangeMdiClientBorderStyle(ByVal Value As System.Windows.Forms.BorderStyle, ByVal Handle As IntPtr)
Dim style As Integer = GetWindowLong(Handle, GWL_STYLE)
Dim exStyle As Integer = GetWindowLong(Handle, GWL_EXSTYLE)
' Add or remove style flags as necessary.
Select Case Value
Case BorderStyle.Fixed3D
exStyle = exStyle Or WS_EX_CLIENTEDGE
style = style And Not WS_BORDER
Exit Select
Case BorderStyle.FixedSingle
exStyle = exStyle And Not WS_EX_CLIENTEDGE
style = style Or WS_BORDER
Exit Select
Case BorderStyle.None
style = style And Not WS_BORDER
exStyle = exStyle And Not WS_EX_CLIENTEDGE
Exit Select
End Select
' Set the styles using Win32 calls
SetWindowLong(Handle, GWL_STYLE, style)
SetWindowLong(Handle, GWL_EXSTYLE, exStyle)
' Update the non-client area.
SetWindowPos(Handle, IntPtr.Zero, 0, 0, 0, 0, _
SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER Or SWP_NOOWNERZORDER Or SWP_FRAMECHANGED)
End Sub
''' summary
''' 获取MDIClient句柄
''' /summary
''' returns/returns
''' remarks/remarks
Private Function getMdiClientHandle() As IntPtr
Dim Obj As MdiClient = Nothing
Dim t As Type
For Each Item As Control In Me.Controls
t = Item.[GetType]()
If t.Name = "MdiClient" Then
Obj = DirectCast(Item, MdiClient)
Exit For
End If
Next
If Obj IsNot Nothing Then
Return Obj.Handle
Else
Return IntPtr.Zero
End If
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Me.IsMdiContainer Then
ChangeMdiClientBorderStyle(BorderStyle.None, getMdiClientHandle)
End If
End Sub
Q2: vb.net mdi窗体 皮肤控件 报错
vb.netmdi窗体我刚用过,
在父窗体的构造函数中写
skinEngine1.SkinFile
=
"Longhorn.ssk";
"longhorn.ssk"是你要用的皮肤名称,记住把皮肤放到\bin\Debug目录下
只要在父窗体使用皮具即可,其vb.netmdi窗体他窗体自动实现窗体更换
采纳后可以追问
Q3: VB里的MDI窗体和普通窗体有什么区别
MDI窗体分成母窗体和子窗体
其中可以有多个窗体做为子窗体显示在母窗体里面,有一个从属vb.netmdi窗体的关系,
而普通窗体是一个平等vb.netmdi窗体的关系,显示效果互不影响
Q4: 如何给VB.NET窗体添加子窗体?
直接添加一个MID父窗体或在已有窗体vb.netmdi窗体的属性中找到IsMDIContainer属性vb.netmdi窗体,然后设置为Truevb.netmdi窗体,然后创建第二个窗体 vb.netmdi窗体,需要加载子窗体的时候:
Dim NewMDIChild As New Form2
NewMDIChild.MdiParent = Me
NewMDIChild.Show()
Public Shared Sub CheckMDIChildForm(ByVal MDIForm As Windows.Forms.Form, ByVal MDIChildForm As Windows.Forms.Form, ByVal MDIChildFormName As String)
If MDIForm.MdiChildren.Length 1 Then
'如果没有任何一个MDI子窗体,则创该MDI子窗体的窗体实例
Dim MDIChildFrm As Windows.Forms.Form = MDIChildForm ' 定义MDI子窗体
MDIChildFrm.MdiParent = MDIForm '指定父窗体
MDIChildFrm.Show() '打开窗体
Exit Sub
Else
Dim x As Integer
Dim frmyn As Boolean
For x = 0 To (MDIForm.MdiChildren.Length) - 1
Dim tempChild As Windows.Forms.Form = CType(MDIForm.MdiChildren(x), Windows.Forms.Form)
If tempChild.Name = MDIChildFormName Then
'检测到有该MDI子窗体,设为激活 并退出循环
frmyn = True
tempChild.BringToFront()
Exit For
Else
frmyn = False
End If
Next
If Not frmyn Then
'在打开的窗体中没检测到则新建
Dim MDIChildFrm As Windows.Forms.Form = MDIChildForm ' 定义MDI子窗体
MDIChildFrm.MdiParent = MDIForm '指定父窗体
MDIChildFrm.Show() '打开窗体
End If
End If
End Sub
Q5: vb.net设置mdi子窗口随父窗口的大小而变化
简单一点vb.netmdi窗体的方式是vb.netmdi窗体,在MDI主窗体内添加一个picturebox控件,然后在这个picturebox中添加一个image控件。
Picture1vb.netmdi窗体的属性:
1.Align=top
2.Appearance=flat
3.BordeStyle=None
4.TabStop=false
Image1vb.netmdi窗体的属性:
1.Stretch=true
在MDI窗体的resize事件中添加如下代码:
Private Sub MDIForm_Resize()
Me.Picture1.Height = Me.Height
End Sub
在Picture1控件的resize事件中添加如下代码:
Private Sub Picture1_Resize()
Me.Image1.Move 0, 0, Me.Picture1.Width, Me.Picture1.Height
End Sub
vb.netmdi窗体的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vbs窗体、vb.netmdi窗体的信息别忘了在本站进行查找喔。





