Изучаю monodevelop и у меня возникают проблемы с появлением окна сообщения
Я работаю в 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 ответа
Вы не можете смешивать наборы инструментов 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 ();
}
}
Смотрите также этот вопрос.
Вы ссылаетесь на GTK, который является встроенным графическим инструментарием в моно, но вы пытаетесь использовать Windows.Forms, который, хотя и включен в моно, является другим инструментарием:
System.Windows.Forms: это инструментарий, используемый в Windows, реализация в mono "эмулирует", как эти элементы управления рисуются и ведут себя на платформах, на которых работает mono.
Gtk: это инструментарий, используемый во многих приложениях OpenSource (Firefox, Pidgin и т. Д.), А GTKSharp - просто реализация этой же библиотеки, но доступная для языков.Net, доступных в моно, хотя вы можете использовать ее напрямую с Visual Studio или Microsoft. компилятор тоже.
Итак, подводя итоги, как сказал Майк, вы не можете использовать их обоих, вы должны выбрать любой из них. Если вы только изучаете.Net, я бы очень посоветовал изучать GTK вместо Windows Forms. Windows формы - это плохой и простой инструментарий, и вскоре вы обнаружите, что вам нужно будет изучить новый API у сторонних разработчиков, чтобы делать вещи, которые не могут делать формы Windows (DevExpress, Infragistics), а Gtk можно легко расширить и с учетом ваших потребностей.