扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
详细查看了你的问题,完全不需要使用线程sleep的方法。
为仓山等地区用户提供了全套网页设计制作服务,及仓山网站建设行业解决方案。主营业务为成都网站制作、网站设计、仓山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
在这边,我要给你引入一个概念。就是Form窗体的两个方法。
Form.Show()和Form.ShowDialog()
第一个Show方法运行后,你的主程序还是会进行,你的代码还是会继续进行下去。此时,窗体还是弹出的。
第二个ShowDialog方法运行后,此时,弹出的一个窗体,你不将其关闭,那么,主程序就会一直等待这个窗体关闭后,才执行后面的代码。
所以,你只需要使用showdialog这个方法,即可达到你想要的结果。
那么,如何才能让弹出的窗体不改变呢?很简单
你可以找到窗体的formcloseing事件,在这个事件中,有一个参数:e
这个e有一个属性,就是e.handle,表示是否处理过这个事件了。
这个时候,如果你不想让窗体关闭,你可以写:
e.handle=true,那么表示已经处理过窗体关闭的事件了。
注:有些情况,可能是:e.cancel=true
定义一个公有布尔值变量 flag,初始值 False。
循环里最开始 If 判断一下 flag,如果为 True 就 Exit Do 跳出循环,否则继续循环。
然后在别的函数控制 flag 的值就可以了。
P.S. 你这段代码是死循环,直到程序占用内存越来越大溢出进而程序崩溃为止……
好像不难吧?
我放进了Button1的Click事件里。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error GoTo Errmessages '在做系统操作时加排错标签是个好习惯
Dim TargetName As String = "ibmdict" '存储进程名为文本型,注:进程名不加扩展名
Dim TargetKill() As Process = Process.GetProcessesByName(TargetName) '从进程名获取进程
Dim TargetPath As String '存储进程路径为文本型
If TargetKill.Length 1 Then '判断进程名的数量,如果同名进程数量在2个以上,用For循环关闭进程。
For i = 0 To TargetKill.Length - 1
TargetPath = TargetKill(i).MainModule.FileName
TargetKill(i).Kill()
Next
ElseIf TargetKill.Length = 0 Then '判断进程名的数量,没有发现进程直接弹窗。不需要的,可直接删掉该If子句
MsgBox("没有发现进程!")
Exit Sub
ElseIf TargetKill.Length = 1 Then '判断进程名的数量,如果只有一个,就不用For循环
TargetKill(0).Kill()
End If
MsgBox("已终止" TargetKill.Length "个进程") '弹窗提示已终止多少个进程
Errmessages: ‘定义排错标签
If Err.Description Nothing Then ’判断有无错误,如果有,则 ↓
MsgBox(Err.Description) '当出现错误时,弹窗提示
End If
End Sub
可根据需要自行修改,这个备注够完善了吧?不会的再Hi我。
Dim key_state As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.KeyPreview = True '设置窗体响应键盘操作
End Sub
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
'MsgBox(e.KeyCode) '这行开启可以测试你输入的按键代码
If key_state = 0 Then e.Handled = True '取消操作
Select Case e.KeyCode
Case 49 '按键1
'................操作脚本
Case 50 '按键2
'................操作脚本
End Select
End Sub
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
e.Handled = True '取消操作
End Sub
'*******************************************************************************另一种方法
AddHandler Me.KeyDown, AddressOf Form1_KeyDown '需要时加入事件
RemoveHandler Me.KeyDown, AddressOf Form1_KeyDown '不需要时删除事件
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流