05.06.2024 13:01 Gtk3
Приклад виведення інформаційного повідомлення також повідомлення про помилку та повідомлення із запитом

dotnet new consoledotnet add package GtkSharpdotnet runusing Gtk;
class Program
{
public static void Main()
{
Application.Init();
new FirstWindow();
Application.Run();
}
public static void Quit()
{
Application.Quit();
}
}using Gtk;
class FirstWindow : Window
{
public FirstWindow() : base("Test")
{
SetDefaultSize(600, 600);
SetPosition(WindowPosition.Center);
DeleteEvent += delegate { Program.Quit(); };
VBox vBox = new VBox();
Add(vBox);
AddButton(vBox, "Діалогове інформаційне повідомлення", OnOpenInfo);
AddButton(vBox, "Діалогове повідомлення про помилку", OnOpenError);
AddButton(vBox, "Діалогове повідомлення підтвердження", OnOpenRequest);
ShowAll();
}
void AddButton(VBox vBox, string caption, EventHandler eventHandler)
{
HBox hBox = new HBox();
vBox.PackStart(hBox, false, false, 5);
Button button = new Button(caption);
button.Clicked += eventHandler;
hBox.PackStart(button, false, false, 5);
}
void OnOpenInfo(object? sender, EventArgs args)
{
Message.Info(this, "Текст повідомлення");
}
void OnOpenError(object? sender, EventArgs args)
{
Message.Error(this, "Текст повідомлення");
}
void OnOpenRequest(object? sender, EventArgs args)
{
if (Message.Request(this, "Текст повідомлення") == ResponseType.Yes)
{
}
}
}using Gtk;
class Message
{
public static void Info(Window? pwin, string message)
{
MessageDialog md = new MessageDialog(pwin, DialogFlags.DestroyWithParent, MessageType.Info, ButtonsType.Ok, message) { WindowPosition = WindowPosition.Center };
md.Run();
md.Dispose();
md.Destroy();
}
public static void Error(Window? pwin, string message)
{
MessageDialog md = new MessageDialog(pwin, DialogFlags.DestroyWithParent, MessageType.Warning, ButtonsType.Close, message) { WindowPosition = WindowPosition.Center };
md.Run();
md.Dispose();
md.Destroy();
}
public static ResponseType Request(Window? pwin, string message)
{
MessageDialog md = new MessageDialog(pwin, DialogFlags.DestroyWithParent, MessageType.Question, ButtonsType.YesNo, message);
ResponseType response = (ResponseType)md.Run();
md.Dispose();
md.Destroy();
return response;
}
}© accounting.org.ua - 2025