C # Mono + Winforms проблема MessageBox - PullRequest
5 голосов
/ 14 января 2009

У меня есть файл с именем 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

... и это выглядит так:

альтернативный текст 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 ]

3 голосов
/ 15 января 2009

Наконец-то я нашел обходной путь. Это похоже на ошибку в Mono, связанную с рендерингом шрифтов. Это происходит, когда включена подсказка " Full ". У меня обычно так бывает. Изменение этого значения на « Slight » или « Medium » в System->Preferences->Appearance->Fonts->Details устраняет проблему. Спасибо за помощь!

1 голос
/ 14 января 2009

Работает нормально на opensuse 11.0, моно 2.0.1.

Пожалуйста, отредактируйте ваш вопрос и укажите моно версию, которую вы используете.

0 голосов
/ 15 января 2009

Когда вы обновляли ваши пакеты и исходный код, вы обновляли / компилировали libgdiplus? Мы увидели некоторые странные графические проблемы, если версии System.Drawing и libgdiplus не синхронизируются.

0 голосов
/ 15 января 2009

Стандартный совет по отладке: Начните вносить небольшие контролируемые изменения и посмотрите, что произойдет. Это поможет сузить суть проблемы.

Попробуйте удалить символы:, +!
Попробуйте удалить пробел.
Попробуйте различные более короткие строки и, возможно, более длинные строки.

Как только вы поймете, что MessageBox будет печатать и не печатать, вы можете начать отлаживать эту конкретную проблему, вместо того, чтобы пытаться отлаживать: «Это не работает!»

0 голосов
/ 14 января 2009

вставьте @ перед надписью "Здравствуйте, Mono + WinForms!" и посмотрим, произойдет ли это до сих пор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...