你好,你使用这种方法只是在控制Form3的visible属性,Form3只是可见或隐藏,并不是真正的关闭了,而你使用Form3上的关闭按钮,他就是真的关闭了,是调用的Form3的Close方法,就是真的没有了,"我设置的S_form3就不起作用了”这句话你应该是想说按钮不起作用了吧,你的S_form3只是个变量,跟Form3没有什么关系,你只是用来当一个Form3可见性的标志,使用bool变量更能清楚表达你的意图。。。没必要用string啊。。。,
在珠山等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都做网站 网站设计制作定制开发,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站建设,外贸营销网站建设,珠山网站建设费用合理。
by the way,你在按钮事件里添加代码 Form3.Close()就会达到和在form3上按关闭按钮同样的效果。
Public Class Form1
System.Runtime.InteropServices.DllImport("user32.dll") _
Private Shared Function SendMessage(ByVal hWnd As Integer, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
End Function
Const SC_MONITORPOWER As Integer = HF170
Const WM_SYSCOMMAND As Integer = H112
Private Enum MonitorMode As Integer
[ON] = -1
STANBY = 1
OFF = 2
End Enum
Private Sub ChangeMonitorState(ByVal mode As MonitorMode)
SendMessage(-1, WM_SYSCOMMAND, SC_MONITORPOWER, CInt(mode))
End Sub
Private Sub Off()
ChangeMonitorState(MonitorMode.OFF)
End Sub
Private Sub [On]()
ChangeMonitorState(MonitorMode.[ON])
End Sub
Private Sub StandBy()
ChangeMonitorState(MonitorMode.STANBY)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Off()
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then [On]()
End Sub
End Class
按button1按钮关闭显示器,按Esc键打开显示器
Allocconsle 打开一个控制台窗口
Call 调用DLL文件中的函数
Freeconsole 关闭控制台窗口
Call 命令调用DLL文件中函数后,函数运行时,如果用户关闭控制台,会弹出错误对话框。
本人想实现:当用户点击控制台关闭按钮后,弹出一个确认对话框,点确定,控制台关闭,并不会出现错误对话框;点取消,控制台继续运行。