2010-12-09 3 views
2

Je travaille dans monodevelop et j'apprends C# .... J'essaye d'obtenir une boîte de message pour apparaître mais je n'arrive pas à la faire fonctionner correctement .. .apprendre monodevelop et j'ai du mal à faire apparaître une boîte messgae

Voici mon code:

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!!"); 
    } 

} 

Qu'est-ce que je suis absent?

+0

Notez que Winforms lui-même est largement supporté sous Linux aussi; juste prendre la décision comme les autres réponses – sehe

Répondre

11

Vous ne pouvez pas mélanger les kits d'outils d'interface utilisateur GTK # et System.Windows.Forms. Vous devez utiliser une boîte de dialogue GTK, quelque chose comme ceci:

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(); 
    } 
} 

Voir aussi this question.

+0

pourquoi est-ce si complexe? –

1

Vous référencez GTK qui est la boîte à outils graphique fourni en mono mais essayez d'utiliser Windows.Forms qui, bien qu'inclus en mono aussi, est une boîte à outils différente:

System.Windows.Forms: Cette est la boîte à outils utilisée dans Windows, l'implémentation sur mono "émule" comment ces contrôles sont dessinés et se comportent sous les plates-formes sur lesquelles s'exécute le mono.

Gtk: Ceci est une boîte à outils utilisé dans de nombreuses applications OpenSource (Firefox, Pidgin, etc) et GTKSharp est simplement la mise en œuvre de cette même bibliothèque mais exposée aux langues .Net disponibles sur mono, bien que vous pouvez l'utiliser directement avec Visual Studio ou un compilateur Microsoft aussi. Pour résumer, comme l'a dit Mike, vous ne pouvez pas les utiliser tous les deux, vous devez choisir l'un ou l'autre. Si vous apprenez juste .Net je conseillerais fortement d'apprendre GTK au lieu de Windows Forms. Windows Forms est une sorte de boîte à outils médiocre et basique, et bientôt vous trouverez que vous aurez besoin d'apprendre une nouvelle API d'un tiers pour faire des choses que les formulaires Windows ne peuvent pas faire (DevExpress, Infragistics) et Gtk peuvent être facilement étendus. ajusté à vos besoins.

Questions connexes