比较急的一个问题 请教下。

xiaoniao_28 2008-03-10 04:38:18
我的C#程序是被一个VB程序调用的 vb中用的是shell函数
我在static void Main(string[] args)
这接受参数 然后做了些判断 参数接受也没问题
这是如果在判断之后 不用MessageBox.show()一下
主界面程序就显示不出来。。。
看进程已经启动了 请教下高手原因。
...全文
171 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ivony 2008-03-11
  • 打赏
  • 举报
回复
本来这个问题无论是从态度、内容、分数各方面都满足可用分回赠计划的,问题是这个标题。真是可惜了啊……
xiaoniao_28 2008-03-11
  • 打赏
  • 举报
回复
先结贴。。。
xiaoniao_28 2008-03-11
  • 打赏
  • 举报
回复
知其然不知其所以然 郁闷 。
哪位知道原因的请告知下。。。
wdzr_826 2008-03-10
  • 打赏
  • 举报
回复
呵呵,那就接分了。
xiaoniao_28 2008-03-10
  • 打赏
  • 举报
回复
问题基本解决了,多亏一个同事的提醒。
在这也和大家分享下经验,
我在private void MainFrm_Load(object sender, System.EventArgs e)
{
this.Visible=true; //加上这个。。
。。。。。。。。。。。
//

非常感谢楼上的几位。
接下来开始散分,欢迎大家继续发言。
明天上班结贴。



changjiangzhibin 2008-03-10
  • 打赏
  • 举报
回复
路过,帮顶
xiaoniao_28 2008-03-10
  • 打赏
  • 举报
回复
不好意思 问题还是没有解决。
还是和之前一样
这样的话能显示出来
try
{
MessageBox.Show(args[0].ToString());//先显示下就能出来界面了
晕了。。。
saright.Name=args[1].ToString();
saright.Number=args[2].ToString();
saright.Level=Convert.ToInt16(args[3].ToString());
// MessageBox.Show("成功启动。"); 没有这个下面的Run函数之后 程序界面显示不出来 很奇怪。
//Application.Run(new MainFrm());
MainFrm myMainFrm = new MainFrm();
myMainFrm.ShowDialog();
}
HimeTale 2008-03-10
  • 打赏
  • 举报
回复
把Application.Run(new MainFrm());
改成
mainfrm = new MainFrm();
Application.Run(mainfrm);
mainfrm.show();
试试



spirit_phoebus 2008-03-10
  • 打赏
  • 举报
回复
三楼说的对。
//Application.Run(new MainFrm());
MainFrm myMainFrm = new MainFrm();
myMainFrm.ShowDialog();
这三句是关键。第一句注销,改为后两句就对了
jiatong1981 2008-03-10
  • 打赏
  • 举报
回复

try
{
//MessageBox.Show(args[0].ToString());
saright.Name=args[1].ToString();
saright.Number=args[2].ToString();
saright.Level=Convert.ToInt16(args[3].ToString());
// MessageBox.Show("成功启动。"); 没有这个下面的Run函数之后 程序界面显示不出来 很奇怪。
//Application.Run(new MainFrm());
MainFrm myMainFrm = new MainFrm();
myMainFrm.ShowDialog();
}

xiaoniao_28 2008-03-10
  • 打赏
  • 举报
回复

请高手指点下。
xiaoniao_28 2008-03-10
  • 打赏
  • 举报
回复

static void Main(string[] args)
{

Process instance = RunningInstance();
if (instance==null)
{
if(args.Length==0)
{
MessageBox.Show("直接启动禁止。","Message",MessageBoxButtons.OK,MessageBoxIcon.Warning);
Application.Exit();
}
else
{
if(args[0].ToString()!="Computer")
{
MessageBox.Show("验证错误。","Message",MessageBoxButtons.OK,MessageBoxIcon.Warning);
Application.Exit();
}
else
{
MainSetting.NetUse();
try
{
//MessageBox.Show(args[0].ToString());
saright.Name=args[1].ToString();
saright.Number=args[2].ToString();
saright.Level=Convert.ToInt16(args[3].ToString());
// MessageBox.Show("成功启动。"); 没有这个下面的Run函数之后 程序界面显示不出来 很奇怪。
Application.Run(new MainFrm());
}
catch(Exception ex)
{
MessageBox.Show(ex.Message,"ERROR",MessageBoxButtons.OK,MessageBoxIcon.Error);
}

}
}
}
else
{
MessageBox.Show("多次启动。","Message",MessageBoxButtons.OK,MessageBoxIcon.Warning);
Application.Exit();
}

}

public static Process RunningInstance()
{
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
foreach (Process process in processes)
{
if (process.Id != current.Id)
{
if (Assembly.GetExecutingAssembly().Location.Replace("/","\\")==current.MainModule.FileName)
{
return process;
}
}
}
return null;
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧