以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教,如何禁止同时打开相同项目?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=41481)

--  作者:ericsky
--  发布时间:2013/10/20 19:33:00
--  请教,如何禁止同时打开相同项目?
请教老师,要实现:同一台电脑、同时间、同一个项目、只能打开一个,可否实现,要如何设置?
谢谢!
[此贴子已经被作者于2013-10-20 19:33:04编辑过]

--  作者:有点甜
--  发布时间:2013/10/20 19:46:00
--  
 
可以用下面代码实现
全局代码:
Public mu As System.Threading.Mutex
 
BeforeOpenProject事件:
Dim sucess As Boolean = False
mu = new System.Threading.Mutex(True, "dsdfhdfghf", sucess)
If not sucess Then
    MessageBox.Show("只能打开一次!")
    e.Cancel = True
End If



--  作者:ericsky
--  发布时间:2013/10/20 19:53:00
--  
多谢甜老师,您真是太棒了!!
我去试试代码!

--  作者:ericsky
--  发布时间:2013/10/21 11:06:00
--  
还有一个小小的问题,继续请教老师:
弹出的messagebox窗口不能前端显示,可有解决方法?
谢谢!


[此贴子已经被作者于2013-10-21 11:06:28编辑过]

--  作者:ericsky
--  发布时间:2013/10/21 20:51:00
--  
有点甜老师,烦你抽空帮忙解惑:

1、弹出的messagebox窗口不能前端显示,可能此时项目还未处于前端,故所属的窗口也不能再前端显示,是否这样?能否有方法解决?
我把代码放在afteropenproject处,倒是解决了这个问题,只是效率不高。

2、您给的代码,在狐表中是找不到的,如果实际应用,不知道有没有后遗症,能不能简单解释一下代码?

谢谢,麻烦您了!

--  作者:有点甜
--  发布时间:2013/10/21 20:52:00
--  
你升级到最新版,就没有这个问题了。
--  作者:ericsky
--  发布时间:2013/10/21 21:01:00
--  
我的版本已经是最新的10月13日版
[此贴子已经被作者于2013-10-21 21:01:03编辑过]

--  作者:有点甜
--  发布时间:2013/10/21 21:06:00
--  
那就加一句代码吧,

e.HideSplashForm = True

--  作者:ericsky
--  发布时间:2013/10/21 21:10:00
--  
甜老师,这个代码我已经尝试加了
messagebox窗口还是躲在后面
当然这只是一个小小的瑕疵,实在不行的话就在afteropenproject处应用吧。



[此贴子已经被作者于2013-10-21 21:10:17编辑过]

--  作者:有点甜
--  发布时间:2013/10/21 21:35:00
--  
 或者你可以这样。自己调整一下,提供一个思路

Dim frm As new system.windows.Forms.Form
frm.text = "提示"
frm.width = 300
frm.height = 150
frm.StartPosition = system.windows.Forms.FormStartPosition.CenterScreen

Dim lbl As new system.windows.Forms.Label
lbl.text = "程序只能打开一次!"
lbl.autosize = True
lbl.Top = 40
lbl.left = 60
lbl.font = new Font("宋体", 15)
frm.controls.add(lbl)
frm.showdialog()