问题描述
C#WinForm的问题:如何禁止打开正打开的程序:比如:我在C#的Form中点一个Button就用记事本打开了一个叫"a.txt"的文件要求:只要这个Form还在运行我再点这个Button就不能再打开"a.txt"这个文件(因为它已经是打开的了)并不是说打开了一个txt文件后就不能再打开其它所有的txt文件只是那个已经被打开的(比如上面的a.txt)不能再次被打开(所以在程序中监测是否打开了记事本发现是就禁止这样是不符合要求的)我的意思应该明白的吧?我也想过这个问题网上没什么此方面的表述路过这里的朋友帮我看看这个问题一起Thinking...提供实现代码并试验无误的立即给分!TKS!!!
解决方案
解决方案二:
usingSystem.Diagnostics;privateboolb=true;Processp=newProcess();privatevoidbutton1_Click(objectsender,EventArgse){if(b){p=Process.Start("d:\a.txt");b=false;}if(p.HasExited){p=Process.Start("d:\a.txt");b=true;}}这样就可以了
解决方案三:
-_-
解决方案四:
#privatevoidbutton1_Click(objectsender,EventArgse){button1.Enabled=false;Processproc=newProcess();proc.StartInfo.FileName="a.txt";proc.EnableRaisingEvents=true;proc.Exited+=newEventHandler(proc_Exited);proc.Start();}voidproc_Exited(objectsender,EventArgse){MethodInvokermi=delegate{button1.Enabled=true;};Invoke(mi);}