如何制作对话模式

时间:2012-07-03 01:34:05

标签: c# .net dialog xna modal-dialog

我设置了save file dialog,但是当我点击它时,对话框会在没有标签或任何内容的情况下消失在背景中。我的问题是如何制作对话模式?如果你不知道我的意思,请进入记事本点击保存,然后尝试点击对话框。您将看到窗口闪烁,并且您会收到一个很好的声音,通知您在执行任何其他操作之前必须在对话框中执行某些操作。我想用我的对话框实现这个效果,但我不知道怎么做。我不能简单地使用Form.Modal属性,因为它处理表单而这不是表单。有人可以帮助我吗?

感谢。

修改

这就是我显示对话框的方式,它在XNA中运行,当我单击“保存为”按钮时,会调用EntrySelected()方法:

    private void EntrySelected(object sender, EventArgs e) {
        if(sender == saveAsEntry) {
            sfd = new SaveFileDialog();
            thread = new Thread(ShowSaveDialog);
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
        }
        ...
    }
    private void ShowSaveDialog() {
        if(sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
            World.Save(sfd.FileName);
            thread.Abort();
        }
        else {
            thread.Abort();
        }
    }

1 个答案:

答案 0 :(得分:2)

Actualy你的Dialog是一个表单,如上面的评论所示,没有Show方法,你应该使用ShowDialog()命令将它打开为模态对话框。

SaveFileDialog1.ShowDialog();

根据您的编辑,有一个ShowDialog版本,您可以将所有者分配给对话框,也许这对您有用。

SaveFileDialog1.ShowDialog(dialogOwner);

从上面链接:

  

此版本的ShowDialog方法允许您指定将拥有所显示对话框的特定表单或控件。如果您使用此方法的没有参数的版本,则显示的对话框将由应用程序的当前活动窗口自动拥有。