在OS X上使用Mono和Winforms

6
我刚开始探索mono winforms环境,但我无法弄清如何在monodevelop中启动程序而不需要启动控制台会话。
我的简单程序运行正常,但当它退出时,总是创建一个终端会话并等待我“按任意键”。我想我可以安排事情使终端窗口自动关闭,但我更希望应用程序仅以本机方式运行,这可行吗?还是mono和.NET的工作方式会阻止这种方法?
Zetcode上的示例所示,在“Main”中,其余代码是使用“application.run(new aFunction())”启动的,我认为这可能是发生终端会话的原因,但将其替换为:
myNewClass n = new myNewClass();
n.aFunction();
会导致程序根本不运行(或可能只是退出而不执行任何操作)。
我是一名经验丰富的程序员,但完全不熟悉C#或mono/.NET环境,因此“陈述显而易见”的回答可能就足够了。

你的问题不够清晰。你的终端会话没有关闭的原因可能是系统设置问题。你发布的代码毫无意义。除非你要启动的类从一个表单继承,否则Application.Run(myNewClass)将无法工作。你计划制作什么类型的应用程序?我实际上很惊讶Mono甚至有Application.Run,因为根据文档它应该只限于Windows应用程序。 - Security Hound
我快速浏览了一下页面,没有任何迹象表明这段代码能在除了安装了Mono的Windows以外的其他操作系统上运行。你不能在除了Windows以外的其他操作系统上使用Windows窗体。 - Security Hound
@RamHound 嗯,这段代码在除了Windows以外的操作系统上也能正常工作,否则我就不会有问题了。也许我有什么误解,但是Mono存在的目的难道不是为了提供一个可移植的.NET程序平台吗? - blankabout
@Ramhound MWF在OSX上运行得非常好。我认为你误解了。 - IanNorton
1个回答

3

MonoDevelop通常可以让您选择是否在外部控制台运行程序。

在Linux上的MonoDevelop 2.8中,您可以通过在解决方案树中对项目进行上下文单击并选择选项; 然后在运行部分下选择在外部控制台上运行来控制此功能。我不确定您是否可以在OSX上禁用此功能。


在项目/程序选项菜单下找到了“运行”选项。正如其名,确实做到了它所说的,所以感谢您指引我正确的方向。 - blankabout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接