C#Mono + Winforms MessageBox问题

时间:2009-01-14 16:47:23

标签: c# .net winforms mono

我有一个名为 hellowf.cs

的文件
class MyFirstApp {
static void Main() {
     System.Windows.Forms.MessageBox.Show("Hello, Mono+WinForms!");
   }
}

在Ubuntu 8.10上,我执行以下操作

gmcs hellowf.cs -r:System.Drawing.dll -r:System.Windows.Forms.dll
mono hellowf.exe

......它看起来像这样:

alt text http://img136.imageshack.us/img136/4674/helloproblemuk5.png


邮件的第二部分缺失。为什么会这样?相同的二进制文件 - hellowf.exe - 在Windows上运行正常。


更新: 这真的很烦人。以下是我所拥有的单声道版本,并尝试将此工作推向目前为止:

    1.9.1 (from official ubuntu repo)
    2.0.1 (from some some 3rd party repo)
    2.2   (wiped every mono pkg and compiled myself)

我当前的单声道版本:

mono --version
Mono JIT compiler version 2.2 (tarball Wed Jan 14 22:58:21 CET 2009)
Copyright (C) 2002-2008 Novell, Inc and Contributors. www.mono-project.com
    TLS:           __thread
    GC:            Included Boehm (with typed GC)
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  x86
    Disabled:      none
gmcs --version
Mono C# compiler version 2.2.0.0

......任何线索?

5 个答案:

答案 0 :(得分:3)

最后我找到了一个解决方法。这似乎是Mono中与字体渲染相关的错误。当“完整”提示打开时会发生这种情况。我通常都是这样。在System->Preferences->Appearance->Fonts->Details中将其更改为“轻微”或“中等”可解决此问题。谢谢你的帮助!

答案 1 :(得分:1)

在opensuse 11.0,mono 2.0.1上运行正常。

请编辑您的问题并输入正在使用的单声道版本。

答案 2 :(得分:0)

在“Hello,Mono + WinForms!”前面贴上一个@并看看它是否仍然存在。

答案 3 :(得分:0)

标准调试建议: 开始进行小的,受控的更改,看看会发生什么。 这将有助于缩小问题范围。

尝试删除符号:,+!
尝试删除空格。
尝试各种较短的琴弦,可能还有一些较长的琴弦。

一旦你对MessageBox将会打印和不打印的内容有了更好的了解,你就可以开始调试那个特定的问题,而不是试图调试,“它不起作用!”

答案 4 :(得分:0)

更新软件包和源代码时,是否更新/编译了libgdiplus?如果System.Drawing和libgdiplus版本不同步,我们已经看到了一些时髦的图形问题。