如何在自定义弹出对话框中保存响应

时间:2015-02-24 22:27:48

标签: c# monogame

我尝试在xna中创建一个自定义弹出式窗口,其中会显示一些文字并添加选择yesno的选项。根据所选按钮,应返回一个值。我已经设置了很多东西,但是我无法弄清楚如何做这个特定的部分。

首先,我有一个PopupDialogHandler类,其中包含所有Popup_Dialog的列表,并管理各自的click事件,并管理更新和绘图。

Popup_Dialog是管理创建新popup对象的类。

一切都已完成,我绘制了矩形,绘制了文本,按钮正在处理中,但我不知道应该采用什么方式进行简单而有效的结果管理。

像winforms'返回MessageBox.Show。 目前,我创建了Popup_Dialog对象并将其添加到PopupDialogHandler类的列表中,从那里我遍历列表中的所有项目并进行绘制和更新逻辑

1 个答案:

答案 0 :(得分:0)

您可以使用操作执行此操作。在PopupDialog类中,将private Action<int> Callback;添加到属性,将此代码添加到构造函数:

public PopupDialog(Action<int> callback /*, rest of constructor parameters if any */)
{
    /* Rest of constructor code, if any */

    if (callback == null)
        throw new ArgumentNullException();
    Callback = callback;
}

在Click处理程序中,只需使用您要返回的值作为参数调用Callback()

在接收/等待课程中,添加以下代码:

private void CallbackFunction(int theReturnedValue)
{
    // do something with the value here
}

并在创建新弹出窗口时传递这样的函数:

var RC = new PopupDialog(CallbackFunction);