我设置了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();
}
}
答案 0 :(得分:2)
Actualy你的Dialog是一个表单,如上面的评论所示,没有Show方法,你应该使用ShowDialog()命令将它打开为模态对话框。
即
SaveFileDialog1.ShowDialog();
根据您的编辑,有一个ShowDialog版本,您可以将所有者分配给对话框,也许这对您有用。
SaveFileDialog1.ShowDialog(dialogOwner);
从上面链接:
此版本的ShowDialog方法允许您指定将拥有所显示对话框的特定表单或控件。如果您使用此方法的没有参数的版本,则显示的对话框将由应用程序的当前活动窗口自动拥有。