vb.net修改子窗体 vbs窗体

请问 。VB. NET 如何更改子窗体(Form2)相对父窗体(Form1)的第一次显示位置 。Dim locForm2 As New Point
locForm2.X = 150
locForm2.Y = 50
Form2.MdiParent = Me
Form2.Show()
Form2.Location = locForm2
前三句 , 声明了一个坐标点,并且赋了值
最后一句 , 当Form2显示了后,把坐标点赋给Form2的位置属性 , 就可以让Form2出现在你给定的位置了
父窗体关闭的时候,子窗体自然就关闭了 。所以你第二个问题不是问题 。
如何给VB.NET窗体添加子窗体?直接添加一个MID父窗体或在已有窗体的属性中找到IsMDIContainer属性 , 然后设置为True , 然后创建第二个窗体,需要加载子窗体的时候:
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.Length1 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
怎么用VB/VB.net/C#修改一个其他程序的窗口的边框样式?private const int GWL_STYLE = (-16);
private const int GWL_EXSTYLE = (-20);
private const uint WS_EX_LAYERED = 0x80000;
private const uint WS_EX_TRANSPARENT = 0x20;
private const uint WS_THICKFRAME = 262144;
private const uint WS_BORDER = 8388608;
/// summary使指定 「 see cref="IntPtr"/ 句柄」 窗体 边框样式变为无边框 。/summary
public static uint 无边框窗体(IntPtr 句柄) {
uint style = API_窗口.GetWindowLong(句柄, GWL_STYLE);
style = ~WS_BORDER;
style = ~WS_THICKFRAME;
return API_窗口.SetWindowLong(句柄, GWL_STYLE, style); ;
}
API窗口静态类
[DllImport("user32", EntryPoint = "SetWindowLong")]
public static extern uint SetWindowLong(IntPtr hwnd, int nIndex, uint dwNewLong);
[DllImport("user32", EntryPoint = "GetWindowLong")]
public static extern uint GetWindowLong(IntPtr hwnd, int nIndex);
修改窗口位置
/// summary
/// 设置窗体的位置和大小 。
/// /summary
/// param name="hWnd"/param
/// param name="hWndInsertAfter"用于标识在z-顺序的此 CWnd 对象之前的 CWnd 对象 。
/// para/para如果uFlags参数中设置了SWP_NOZORDER标记则本参数将被忽略 。可为下列值之一:
/// para/paraHWND_BOTTOM:值为1,将窗体置于Z序的底部 。如果参数hWnd标识了一个顶层窗体,则窗体失去顶级位置,并且被置在其他窗体的底部 。
/// para/paraHWND_NOTOPMOST:值为-2,将窗体置于所有非顶层窗体之上(即在所有顶层窗体之后) 。如果窗体已经是非顶层窗体则该标志不起作用 。
/// para/paraHWND_TOP:值为0 , 将窗体置于Z序的顶部 。
/// para/paraHWND_TOPMOST:值为-1,将窗体置于所有非顶层窗体之上 。即使窗体未被激活窗体也将保持顶级位置 。/param

推荐阅读