2010-12-09 3 views
2

나는 monodevelop에서 일하고 있으며 C#을 배우고 있습니다. 메시지 상자를 표시하려고하는데 제대로 작동하지 않습니다. . 내가 무엇을 놓치고monodevelop를 배우고 있고 messgae 상자를 표시하는 데 문제가 있습니다.

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

} 

: 여기

내 코드?

+0

Winforms 자체는 Linux에서도 크게 지원됩니다. 다른 애호가가 지적한 것처럼 마음을 만회하십시오 – sehe

답변

11

GTK # 및 System.Windows.Forms UI 툴킷을 함께 사용할 수 없습니다. 이 같은 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(); 
    } 
} 

this question 참조하십시오.

+0

왜 이것이 너무 복잡합니까? –

1

당신은 모노 번들 그래픽 툴킷 GTK를 참조하고 있지만, 너무 모노에 포함되어 있지만, 어떤 Windows.Forms을 사용하려고, 다른 툴킷 :

System.Windows.Forms :이 Windows에서 사용되는 툴킷입니다. 모노의 구현은이 컨트롤이 그려지는 방식을 "모방"하고 모노가 실행되는 플랫폼에서 작동합니다.

은 Gtk :이 단순히이 같은 라이브러리의 구현하지만, 당신이 그것을 직접 사용할 수 있지만 모노에서 사용할 수있는 .NET 언어에 노출 된 많은 오픈 소스 응용 프로그램 (파이어 폭스, 피진, 등) GTKSharp에 사용되는 툴킷입니다 Visual Studio 또는 Microsoft 컴파일러와도 호환됩니다.

Mike가 말한 것처럼 요약하면 두 가지를 모두 사용할 수 없으므로 둘 중 하나를 선택해야합니다. .Net을 배우는 중이라면 Windows Forms 대신 GTK를 배우는 것이 좋습니다. Windows 폼은 가난하고 기본적인 툴킷입니다. 곧 개발자는 Windows Forms에서 수행 할 수없는 작업 (DevExpress, Infragistics)을 수행하고 Gtk를 쉽게 확장 할 수있는 새로운 API를 제 3 자로부터 배워야 할 필요가 있음을 알게 될 것입니다. 귀하의 필요에 맞게 조정하십시오.

관련 문제