изучаю monodevelop и у меня возникают проблемы с появлением окна сообщения - PullRequest
2 голосов
/ 10 декабря 2010

Я работаю в monodevelop и изучаю c # .... Я пытаюсь заставить окно сообщения появляться, но не могу заставить его работать правильно ...

Вот мой код:

using System;  
using Gtk;  
using GtkSharp;  

public partial class MainWindow : Gtk.Window  
{
    public MainWindow () : base(Gtk.WindowType.Toplevel)  
    {  
        Build ();  
    }  

    protected void OnDeleteEvent (object sender, DeleteEventArgs a)
    {
        Application.Quit ();
        a.RetVal = true;
    }
    protected virtual void OnButton11ResizeChecked (object sender, System.EventArgs e)
    {
        System.Windows.Forms.MessageBox.Show("Hello World Again!!");
    }

}

Чего мне не хватает?

Ответы [ 2 ]

12 голосов
/ 13 декабря 2010

Нельзя смешивать наборы инструментов интерфейса пользователя GTK # и System.Windows.Forms. Вам нужно использовать диалог GTK, что-то вроде этого:

void ShowMessage (Window parent, string title, string message)
{
    Dialog dialog = null;
    try {
        dialog = new Dialog (title, parent,
            DialogFlags.DestroyWithParent | DialogFlags.Modal,
            ResponseType.Ok);
        dialog.VBox.Add (new Label (message));
        dialog.ShowAll ();

        dialog.Run ();
    } finally {
        if (dialog != null)
            dialog.Destroy ();
    }
}

См. Также этот вопрос .

1 голос
/ 16 декабря 2010

Вы ссылаетесь на GTK, который является встроенным графическим инструментарием в моно, но пытаетесь использовать Windows. Формы, которые, хотя и включены в моно, являются другим инструментарием:

System.Windows.Forms: Это инструментарий, используемый в Windows, реализация в моно "эмулирует", как эти элементы управления рисуются и ведут себя на платформах, на которых работает моно.

Gtk: Это инструментарий, используемый во многих приложениях OpenSource (Firefox, Pidgin и т. Д.), А GTKSharp - просто реализация этой же библиотеки, но доступная для языков .Net, доступных в моно, хотя вы могли бы используйте его напрямую с Visual Studio или с компилятором Microsoft.

Итак, резюмируя, как сказал Майк, вы не можете использовать их обоих, вы должны выбрать любой из них. Если вы только изучаете .Net, я бы очень посоветовал изучать GTK вместо Windows Forms. Windows формы - это плохой и простой инструментарий, и вскоре вы обнаружите, что вам нужно будет изучить новый API у третьей стороны, чтобы делать вещи, которые не могут делать формы Windows (DevExpress, Infragistics), и Gtk можно легко расширить и с учетом ваших потребностей.

...