问题补充:我用VB.NET写的,FORM2用来实现数据采样并显示实时曲线,关闭后再'取消FORM2的关闭 这样就把FORM2隐藏起来了,需要调出来的时候只需以下代码
创新互联主要从事做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务铁东,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220
方法1.将FormBorderStyle的值设为None
方法2.或将ControlBox的值设为false
方法3.如查你仅仅是要将关闭按钮disable的话,请双击窗体,后将以下代码替换窗体中的所有代码。
Public Class Form1
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Integer, ByVal bRevert As Integer) As Integer
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
Private Const MF_REMOVE = H1000
Private Const SC_COLSE = HF060
Private Const SC_MAXIMIZE = HF030
Private Const SC_MINIMIZE = HF020
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RemoveMenu(GetSystemMenu(Me.Handle, 0), SC_COLSE, MF_REMOVE) '//关闭
RemoveMenu(GetSystemMenu(Me.Handle, 0), SC_MAXIMIZE, MF_REMOVE) '//最大化
RemoveMenu(GetSystemMenu(Me.Handle, 0), SC_MINIMIZE, MF_REMOVE) ’//最小化
End Sub
End Class
这样的话你就不要直接把子窗口show出来,先在父窗口创建一个子窗口对象的变量,通过实例化该变量达到创建子窗口的目的,然后在下次又要打开子窗口时也可以通过该变量关闭原有的子窗口
示例代码如下(假设Form1为父窗口,Form2为子窗口):
Form1的代码:
Public
Class
Form1
Dim
nform
As
Form2
=
Nothing
Private
Sub
Button1_Click(ByVal
sender
As
System.Object,
ByVal
e
As
System.EventArgs)
Handles
Button1.Click
If
nform
IsNot
Nothing
Then
nform.Close()
nform.Dispose()
End
If
nform
=
New
Form2
nform.Show()
Me.Hide()
End
Sub
End
Class
通过nform变量,你可以很轻易就处理掉原来已经打开但隐藏着的子窗口了
1、如果上一个窗体是程序的主窗体(默认是程序的第一个窗体),
则不能关闭这个窗体,只能隐藏(Me.Hide())这个窗体,否则整
个程序就被关掉了。
2、如果上一个窗体不是程序的主窗体,可以用Me.Close()
关闭。