各位,我自己写了一个控件,然后将控件拖到主窗体。
但是还是在设计的时候,那个控件上就开始运行操作了。我希望设计的时候停止操作。然后就使用designmode判断然后return,但不行。
可以判断进程名是否等于devenv.exe然后return吗?可以的话,代码怎么写呢?谢谢
但是还是在设计的时候,那个控件上就开始运行操作了。我希望设计的时候停止操作。然后就使用designmode判断然后return,但不行。
可以判断进程名是否等于devenv.exe然后return吗?可以的话,代码怎么写呢?谢谢
try{
foreach (Process thisproc in Process.GetProcessesByName(processName)) {
if(!thisproc.CloseMainWindow()){
{}
}
}
}
catch(Exception Exc)
{
}
GC.Collect();
string name = "aaa";//程序进程名称
int ProgressCount = 0123456;//判断进程是否运行的标识
Process[] prc = Process.GetProcesses();
foreach(Process pr in prc) //遍历整个进程
{
if (name == pr.ProcessName) //如果进程存在
{
ProgressCount = 0; //计数器清空
return;
}
}
if(ProgressCount!=0)//如果计数器不为0,说名所指定程序没有运行
{
try
{
//调用外部程序
Process MyProcess = new Process();
MyProcess.StartInfo.FileName = "d:/aaa.exe";
MyProcess.StartInfo.Verb = "Open";
MyProcess.StartInfo.CreateNoWindow = true;
MyProcess.Start();
}
catch(Exception d)
{
MessageBox.Show(d.Message+"","提示!!!!");
}
}
else
{
MessageBox.Show("对不起,本地已经有系统正在运行!\n.","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
我正在使用《Csdn收音机》第一时间获取最新动态!
{
if(DesignMode) return;
}
devenv.exe是c#的进程,应该是在设计时候的。所以判断进程是否与那个相等就类似于是自己写一个designmode了。 bool IsThisProcess()
{
Process p = Process.GetCurrentProcess();
if (p.ProcessName == "devenv")
{ return true;
}
else
{
return false;
}
}
然后在需要停止操作的那层控件里判断一下private void SecondUserCon_Load(object sender, EventArgs e)
{
if (IsThisProcess()) return;
}大家可以试试,在第二层usercontrol里用designmode确实是行不通的,所以只好自己写一个了。