Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Mono和#x2B;Winforms MessageBox问题_C#_.net_Winforms_Mono - Fatal编程技术网

C#Mono和#x2B;Winforms MessageBox问题

C#Mono和#x2B;Winforms MessageBox问题,c#,.net,winforms,mono,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 。。。看起来是这样

我有一个文件名为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
。。。看起来是这样的:


消息的第二部分丢失。为什么会这样?相同的二进制文件--hellowf.exe在Windows上运行良好


更新: 这真让人讨厌。以下是迄今为止我一直尝试使用的mono版本:

    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

。。。有什么线索吗?

在“你好,Mono+WinForms!”前贴一个@,看看它是否仍然发生。

在opensuse 11.0、Mono 2.0.1上工作正常

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

标准调试建议: 开始做一些小的、可控的改变,看看会发生什么。 这将有助于缩小问题的范围

尝试删除符号:,+
尝试删除空间。
尝试各种较短的字符串,可能还有一些较长的字符串。


一旦您对MessageBox将打印什么和不打印什么有了更好的了解,您就可以开始调试该特定问题,而不是尝试调试“它不工作!”

最后我找到了一个解决方法。这似乎是Mono中与字体渲染相关的错误。当打开“”提示时会发生此情况。我通常是这样的。在
系统->首选项->外观->字体->详细信息
中将其更改为“轻微”或“中等”可以解决此问题。谢谢你的帮助

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

不幸的是,在添加字符串literal.bummer前缀后,这种情况仍然会发生。bummer,不确定,这听起来很奇怪。可能WinForms的单词在mono上不运行:p您安装了哪个版本的libmono windorms?以前我有2.0版本。我已经清除了所有mono并安装了当前2.2源代码中的所有内容。我已经做了很多小改动,将mono从1.9.1更新到2.0.1,然后从源代码编译了2.2。它从字符串的第一个空格中删除所有内容。此外,这显然是实现中的一个bug,因此不要表现得像从书中复制的hello world代码是错误的。@gdivos:我想您已经回答了您的问题:这是实现中的一个bug。我并没有“表现得好像从书上抄袭的hello world代码是错误的”。变得卑鄙无助。再见。@abelenky,从时间戳上看,他似乎在解决问题后变得很轻蔑:)是的,首先我编译并“进行安装”——ed libgdiplus,然后是mono。Jonathan,如果不太麻烦的话,你能看看我的GTK问题吗?米格尔当时在场,但我不知道他是否会回来:)提前谢谢……不幸的是,我对Gtk或OSX一无所知。我试着回答我能回答的问题,但那个问题超出了我的参考范围。对不起,伙计。祝你好运!据猜测,Mono在暗示之前正在计算盒子的大小,然后在暗示之后需要对消息进行文字包装,使其与宽度相适应。。。